Lesen des Git-Protokolls

90

Im Git-Community-Buch heißt es

Eine weitere interessante Möglichkeit besteht darin, das Commit-Diagramm mit der Option '--graph' zu visualisieren.

$ 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

Es wird eine ziemlich schöne ASCII-Darstellung der Commit-Verlaufszeilen geben.

Wie soll ich diese Grafik lesen? Wie unterscheidet 420eac9sich von den anderen?

Michael
quelle

Antworten:

115

Die Sternchen zeigen, wo etwas begangen wurde:

e1193f8, 5a09431Und 30e367cwurden auf dem linken Ast (wodurch man eine engagierte |auf der rechten Zweig) , während 420eac9auf der rechten Zweig begangen wurde (ein Nachgeben |auf dem linken Ast). Und das ist das, was 420eac9anders als der Rest tut: es ist die einzige auf dem rechten Zweig begehen.

Der Vollständigkeit halber:

  • d6016bc war der Verzweigungspunkt
  • 5e3ee11 ist das Zusammenführungs-Commit
  • 2d3acf9 ist das erste Commit nach dem Zusammenführen
eckes
quelle
4
Ich hatte eine Frage zu den in der Grafik gezeigten Festschreibungszeiten. In der Grafik ist '420eac9' über '30e367c', '5a09431' und 'e1193f8' dargestellt. Würde das immer bedeuten, dass '420eac9' nach den anderen drei festgeschrieben wurde, oder werden Festschreibungen für einen Zweig zusammengefasst, und die Reihenfolge, in der sie über Zweige hinweg angezeigt werden, hat keine zeitliche Korrelation?
Parag
4
@Parag: Commits in einem Zweig werden zusammengefasst. 420eac9wurde nach dem ersten Commit der e1193f8Niederlassung durchgeführt, aber nicht unbedingt nach30e367c
eckes
1
@eckes Sind die |Symbole links (ganz links) eine Darstellung des Zweigs, in dem ich mich gerade befinde ?
J86
@ J86 Wenn Sie zu einem anderen Zweig wechseln und denselben Befehl ausführen, erhalten Sie dieselbe Ausgabe, sodass in der Grafik kein Verweis auf den aktuellen Zweig enthalten ist, in dem Sie sich befinden
onofricamila
19

420eac9befindet sich in einem anderen Zweig als die 3 Commits "darunter". Die Zweige gingen auseinander d6016bcund wurden zusammengelegt 5e3ee11.

Ilkka
quelle
4
Vielleicht ist ein besserer Wortlaut als die divergierenden Zweige, dass ein zweiter Zweig aus d6016bcdem ursprünglichen Zweig erstellt und parallel dazu entwickelt wurde.
Ilkka