Certaines commandes git prennent le parent en tant que révision; d'autres (tels que git revert
), en tant que numéro parent. Comment obtenir les parents pour les deux cas. Je ne souhaite pas utiliser la commande de journal graphique car cela nécessite souvent de faire défiler un long arbre pour trouver le deuxième parent.
Facile git log <hash>
appelé une commande de fusion affiche les hachages abrégés de ses parents:
$ git log -1 395f65d
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git
affiche les parents en fonction de leur numéro: le premier (le plus à gauche) est pour le premier parent, et ainsi de suite.
Si vous ne voulez que les hachages, les deux choix équivalents sont les suivants:
$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>
git rev-list
peut aussi montrer les hashs des parents, bien qu'il listera d'abord le hash pour un commit:
$ git rev-list --parents -n 1 <commit>
Si vous voulez examiner les parents, vous pouvez les appeler directement avec des carats comme <commit>^1
et <commit>^2
, par exemple.:
git show <commit>^1
Cela généralise; pour une fusion de pieuvre, vous pouvez vous référer au nth parent comme <commit>^n
. Vous pouvez vous référer à tous les parents avec <commit>^@
, bien que cela ne fonctionne pas lorsqu'un seul commit est requis. Des suffixes supplémentaires peuvent apparaître après le nth syntaxe parent (par exemple, <commit>^2^
, <commit>^2^@
), alors qu’ils ne peuvent plus après ^@
(<commit>^@^
_ n'est pas valide). Pour plus d'informations sur cette syntaxe, lisez le rev-parse
page de manuel.
Voici la manière la plus simple que j'ai trouvée pour afficher les parents d'une fusion
git show --pretty=raw 3706454