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...Bjest to równoważne z git diff $(git-merge-base A B) B. Z drugiej strony dokumentacja git-rev-parsuje , że r1...r2jest zdefiniowany jako r1 r2 --not $(git merge-base --all r1 r2).
Dlaczego się różnią? Zauważ, że git diff HEAD...branchdaje 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...branchdaje te zobowiązaniagit log HEAD...branchdaje jednak x, y, z, c, d, e.