Qual é a melhor maneira de obter um log de confirmações em uma ramificação desde o momento em que ela foi ramificada da ramificação atual? Minha solução até agora é:
git log $(git merge-base HEAD branch)..branch
A documentação para git-diff indica que git diff A...B
é equivalente a git diff $(git-merge-base A B) B
. Por outro lado, a documentação para git-rev-parse indica que r1...r2
é definido como r1 r2 --not $(git merge-base --all r1 r2)
.
Por que isso é diferente? Observe que isso git diff HEAD...branch
me dá as diferenças que eu quero, mas o comando git log correspondente me dá mais do que eu quero.
Nas imagens, suponha o seguinte:
x --- y --- z --- ramo / --- a --- b --- c --- d --- e --- CABEÇA
Gostaria de obter um log contendo confirmações x, y, z.
git diff HEAD...branch
dá esses commits- no entanto,
git log HEAD...branch
fornece x, y, z, c, d, e.