Jaki jest najlepszy sposób na uzyskanie dziennika zatwierdzeń w oddziale od czasu, gdy został on rozgałęziony z bieżącego oddziału? Moje dotychczasowe rozwiązanie to:
git log $(git merge-base HEAD branch)..branch
Dokumentacja git-diff wskazuje, że git diff A...B
jest to równoważne z git diff $(git-merge-base A B) B
. Z drugiej strony dokumentacja git-rev-parsuje , że r1...r2
jest zdefiniowany jako r1 r2 --not $(git merge-base --all r1 r2)
.
Dlaczego się różnią? Zauważ, że git diff HEAD...branch
daje mi to różnice, których chcę, ale odpowiednie polecenie git log daje mi więcej niż to, czego chcę.
Załóżmy na zdjęciach:
x --- y --- z --- gałąź / --- a --- b --- c --- d --- e --- HEAD
Chciałbym uzyskać dziennik zawierający zatwierdzenia x, y, z.
git diff HEAD...branch
daje te zobowiązaniagit log HEAD...branch
daje jednak x, y, z, c, d, e.