Como obter as alterações em uma ramificação no Git
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 quegit diff A...B
é equivalente agit diff $(git-merge-base A B) B
. Por outro lado, a documentação para git-rev-parse indica quer1...r2
é definido comor1 r2 --not $(git merge-base --all r1 r2)
.
Por que estes são diferentes? Observe quegit diff HEAD...branch
me dá as diferenças que eu quero, mas o comando git log correspondente me dá mais do que eu quer
Nas imagens, suponha o seguinte:
x---y---z---branch / ---a---b---c---d---e---HEAD
Gostaria de obter um log contendo confirmações x, y, z.
git diff HEAD...branch
dá esses commitsContudo,git log HEAD...branch
fornece x, y, z, c, d,