Qual è il modo migliore per ottenere un registro dei commit su un ramo dal momento in cui è stato ramificato dal ramo corrente? La mia soluzione finora è:
git log $(git merge-base HEAD branch)..branch
La documentazione per git-diff indica che git diff A...Bè equivalente a git diff $(git-merge-base A B) B. D'altra parte, la documentazione per git-rev-parse indica che r1...r2è definito come r1 r2 --not $(git merge-base --all r1 r2).
Perché sono diversi? Nota che git diff HEAD...branchmi dà le differenze che voglio, ma il comando git log corrispondente mi dà più di quello che voglio.
Nelle immagini, supponiamo che:
x --- --- y z --- ramo
/
--- --- un b --- --- c d --- e --- TESTA
Vorrei ottenere un registro contenente commit x, y, z.
git diff HEAD...branchdà questi impegni- tuttavia,
git log HEAD...branchdà x, y, z, c, d, e.