Cómo leer git log graph

En el libro de la comunidad git, dice

Otra cosa interesante que puedes hacer es visualizar el gráfico de compromiso 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 

Proporcionará una muy bonita representación ASCII de las líneas de historial de compromisos.

¿Cómo debería leer este gráfico? ¿Cómo se diferencia 420eac9 del rest?

Los asteriscos muestran dónde se cometió algo:

e1193f8 , 5a09431 y 30e367c se 30e367c a la twig izquierda (produciendo a | en la twig derecha) mientras que 420eac9 se 420eac9 a la twig derecha (produciendo | en la twig izquierda). Y eso es lo que 420eac9 hace diferente del rest: es el único compromiso con la twig correcta.

En aras de la exhaustividad:

  • d6016bc fue el punto de ramificación
  • 5e3ee11 es el compromiso de fusión
  • 2d3acf9 es el primer compromiso después de la fusión

420eac9 está en una twig diferente que la 3 se compromete "debajo" de ella. Las twigs divergieron después de d6016bc y se fusionaron en 5e3ee11 .