Comment lire le graphique git log

92

Dans le livre de la communauté git, il est dit

Une autre chose intéressante que vous pouvez faire est de visualiser le graphe de validation avec l'option '--graph', comme ceci:

$ 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

Cela donnera une jolie représentation ASCII des lignes d'historique de commit.

Comment lire ce graphique? En quoi 420eac9diffère- t -il du reste?

Michael
la source

Réponses:

116

Les astérisques indiquent où quelque chose a été commis:

e1193f8, 5a09431et se 30e367csont engagés sur la branche gauche (donnant un |sur la branche droite) alors que se 420eac9sont engagés sur la branche droite (donnant un |sur la branche gauche). Et c'est ce qui 420eac9fait la différence des autres: c'est le seul engagement dans la bonne branche.

Par souci d'exhaustivité:

  • d6016bc était le point de ramification
  • 5e3ee11 est le commit de fusion
  • 2d3acf9 est le premier commit après la fusion
eckes
la source
4
J'avais une question sur les temps de validation comme indiqué dans le graphique. Dans le graphique, «420eac9» est affiché au-dessus de «30e367c», «5a09431» et «e1193f8». Cela signifie-t-il toujours que «420eac9» a été commis après les trois autres, ou est-ce que les engagements sur une branche sont regroupés et que l'ordre dans lequel ils apparaissent entre les branches n'a pas de corrélation temporelle?
Parag
4
@Parag: les commits dans une branche sont regroupés. 420eac9a été fait après le premier commit de la e1193f8branche mais pas nécessairement après30e367c
eckes le
1
@eckes, les |symboles sur la gauche (le plus à gauche) sont-ils une représentation de la branche sur laquelle je suis actuellement?
J86
@ J86 si vous passez à une autre branche et exécutez la même commande, vous obtenez la même sortie, donc il n'y a pas de référence dans le graphique à la branche actuelle sur laquelle vous vous trouvez
onofricamila
19

420eac9est sur une branche différente de celle des 3 commits "en dessous". Les branches ont divergé après d6016bcet elles ont été fusionnées 5e3ee11.

Ilkka
la source
4
Peut-être qu'une meilleure formulation que les branches divergentes est qu'une deuxième branche a été créée d6016bcet développée en parallèle avec la branche d'origine.
Ilkka