Was ist der beste Weg, um ein Protokoll der Commits für einen Zweig zu erhalten, seit dieser von dem aktuellen Zweig verzweigt wurde? Meine bisherige Lösung lautet:
git log $(git merge-base HEAD branch)..branch
Die Dokumentation für git-diff gibt an, dass dies git diff A...B
äquivalent zu ist git diff $(git-merge-base A B) B
. Andererseits gibt die Dokumentation für git-rev-parse an, dass r1...r2
definiert ist als r1 r2 --not $(git merge-base --all r1 r2)
.
Warum sind diese unterschiedlich? Beachten Sie, dass git diff HEAD...branch
ich die gewünschten Unterschiede habe, aber der entsprechende Befehl git log gibt mir mehr als das, was ich will.
Nehmen wir in Bildern Folgendes an:
x --- y --- z --- Zweig /. --- a --- b --- c --- d --- e --- KOPF
Ich möchte ein Protokoll mit den Commits x, y, z erhalten.
git diff HEAD...branch
gibt diese Commits- Jedoch
git log HEAD...branch
gibt x, y, z, c, d, e.