Compte tenu d'un engagement de fusion, comment puis-je obtenir ses parents? Certaines commandes git prennent le parent en tant que révision; autres (tels que git revert
), en tant que numéro parent; Je voudrais savoir comment obtenir les parents pour les deux cas. Je ne souhaite pas utiliser la commande log log car cela nécessite souvent de faire défiler un long arbre pour trouver le second parent.
Réponses
Trop de publicités?À noter également que la normale de la sortie du journal montre l'abrégé les hachages des parents, pas besoin de faire défiler:
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git toujours les imprime dans l'ordre de leur numéro du parent: le premier hachage est pour le premier parent, et ainsi de suite.
Si vous voulez juste les tables de hachage, les deux équivalent choix:
git log --pretty=%P -n 1 <commit>
git show --pretty=%P <commit>
rev-list
peut aussi afficher le parent hachages pour une livraison. Il sera le premier de la liste, la valeur de hachage pour une livraison, suivi par les parents.
git rev-list --parents -n 1 <commit>
Si vous voulez examiner les parents, vous pouvez vous référer à eux directement avec carats comme <commit>^1
et <commit>^2
, par ex.:
git show <commit>^1
Cela ne veut généraliser; pour un poulpe de fusion, vous pouvez vous référer à la nde la th parent en tant que <commit>^n
. Vous pouvez consulter tous les parents d' <commit>^@
, bien que cela ne fonctionne pas quand un seul commit est nécessaire. Des suffixes supplémentaires peuvent apparaître après la nde la th parent de syntaxe (par exemple, <commit>^2^
, <commit>^2^@
), alors qu'ils ne peuvent pas après l' ^@
(<commit>^@^
n'est pas valide). Pour en savoir plus sur cette syntaxe, lire l' rev-parse
page de man.
À noter également que la normale de la sortie du journal ne montrent abrégé les hachages des parents:
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...