¿Cuál es la mejor manera de obtener un registro de confirmaciones en una rama desde el momento en que se bifurcó desde la rama actual? Mi solución hasta ahora es:
git log $(git merge-base HEAD branch)..branch
La documentación para git-diff indica que git diff A...B
es equivalente a git diff $(git-merge-base A B) B
. Por otro lado, la documentación para git-rev-parse indica que r1...r2
se define como r1 r2 --not $(git merge-base --all r1 r2)
.
¿Por qué son diferentes? Tenga en cuenta que git diff HEAD...branch
me da las diferencias que quiero, pero el comando git log correspondiente me da más de lo que quiero.
En imágenes, suponga esto:
x --- y --- z --- rama / / --- a --- b --- c --- d --- e --- HEAD
Me gustaría obtener un registro que contenga commits x, y, z.
git diff HEAD...branch
da estos compromisos- sin embargo,
git log HEAD...branch
da x, y, z, c, d, e.