Respostas:
Simple git log <hash>
chamado para um commit de mesclagem mostra hashes abreviados de seus pais:
$ git log -1 395f65d
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git
gera os pais de acordo com seu número: o primeiro hash (mais à esquerda) é para o primeiro pai e assim por diante.
Se tudo o que você deseja são apenas os hashes, as duas opções equivalentes são:
$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>
git rev-list
também pode mostrar os hashes dos pais, embora ele primeiro liste o hash de um commit:
$ git rev-list --parents -n 1 <commit>
Se você deseja examinar os pais, pode consultá-los diretamente com quilates como <commit>^1
e <commit>^2
, por exemplo:
git show <commit>^1
Isso generaliza; para uma mesclagem de polvo, você pode consultar o enésimo pai como <commit>^n
. Você pode consultar todos os pais com <commit>^@
, embora isso não funcione quando uma única confirmação é necessária. Sufixos adicionais podem aparecer após a nona sintaxe pai (por exemplo <commit>^2^
, <commit>^2^@
), enquanto que não podem depois ^@
( <commit>^@^
não é válido). Para mais informações sobre esta sintaxe, leia a rev-parse
página de manual.
git log
e git show
produz coisas muito diferentes quando há apenas um pai. Prefira git log
se você deseja consistência.
git (v2.17.1)
. Não vejo Merge
arquivo na git log -1
saída.
A seguir, é a maneira mais simples de encontrar os pais de uma mesclagem
git show --pretty=raw 3706454
git cat-file -p 3706454
é o mesmo, mas ainda mais curto :)
git log --pretty=raw -1 3706454