Cómo leer el gráfico de registro de git

95

En el libro de la comunidad de git, dice

Otra cosa interesante que puede hacer es visualizar el gráfico de confirmación con la opción '--graph', así:

$ git log --pretty=format:'%h : %s' --graph
* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema

Le dará una representación ASCII bastante agradable de las líneas del historial de confirmación.

¿Cómo debo leer este gráfico? ¿En qué se 420eac9diferencia del resto?

Miguel
fuente

Respuestas:

118

Los asteriscos muestran dónde se cometió algo:

e1193f8, 5a09431y 30e367cestaban comprometidos con la rama izquierda (produciendo a |en la rama derecha) mientras que 420eac9estaban comprometidos con la rama derecha (produciendo a |en la rama izquierda). Y eso es lo 420eac9que diferencia al resto: es el único compromiso con la rama correcta.

En aras de la exhaustividad:

  • d6016bc fue el punto de ramificación
  • 5e3ee11 es el compromiso de fusión
  • 2d3acf9 es la primera confirmación después de fusionar
eckes
fuente
4
Tenía una pregunta sobre los tiempos de compromiso como se muestra en el gráfico. En el gráfico, '420eac9' se muestra encima de '30e367c', '5a09431' y 'e1193f8'. ¿Eso siempre significaría que '420eac9' se cometió después de los otros tres, o es que los compromisos en una rama se agrupan y el orden en el que aparecen en las ramas no tiene una correlación de tiempo?
Parag
4
@Parag: las confirmaciones en una rama se agrupan. 420eac9se realizó después de la primera confirmación de la e1193f8rama, pero no necesariamente después30e367c
eckes
1
@eckes, ¿son los |símbolos de la izquierda (los más a la izquierda) una representación de la rama en la que estoy actualmente?
J86
@ J86 si cambia a otra rama y ejecuta el mismo comando, obtiene el mismo resultado, por lo que no hay referencia en el gráfico a la rama actual en la que se encuentra
onofricamila
19

420eac9está en una rama diferente a las 3 confirmaciones "debajo" de ella. Las ramas divergieron después d6016bcy se fusionaron 5e3ee11.

Ilkka
fuente
5
Quizás una mejor redacción que las ramas que divergen es que una segunda rama se creó d6016bcy se desarrolló en paralelo con la rama original.
Ilkka