web-dev-qa-db-fra.com

git comment trouver le hachage de commit d'où provient la branche

Imaginez que je sois passé de ma branche principale à une branche de sujet, puis que j'ai effectué quelques commits sur cette branche. Existe-t-il une commande qui m'indique le hachage de validation de la branche principale d'où provient ma branche de sujet?

Idéalement, je n'aurais pas à savoir combien de commits j'ai commis (en essayant d'éviter HEAD ^ 5).

J'ai googlé et tellement soigné autour et je ne peux pas sembler atterrir sur la réponse. Merci!

44
brycemcd

utilisez git merge-base master your-branch pour trouver le meilleur ancêtre commun entre deux branches (généralement le point de branchement).

41
knittl

Vous pouvez utiliser git reflog show --no-abbrev <branch name>. Il affichera toutes les modifications apportées à la branche, y compris sa création, par exemple (j'ai créé la branche xxx à partir de la branche master):

bdbf21b087de5aa2e78a7d793e035d8bd9ec9629 xxx@{0}: branch: Created from master

Notez que ceci n’est pas très fiable car les enregistrements de reflog peuvent expirer (90 jours par défaut), et il semble qu’il n’existe aucun moyen fiable à 100% de le faire.

63
max

Pour ce faire, le seul moyen fiable consiste à baliser le début de votre branche lorsque vous la créez. La réponse acceptée ne fonctionnera pas si vous fusionnez les commits dans la branche d'où provient votre nouvelle branche. C'est parfois le cas, par exemple, si vous créez une branche de version stabilisante et souhaitez fusionner vos correctifs trouvés lors du test de version sur master. Une chose commune à faire. Si vous savez que vous ne fusionnerez jamais les commits de votre nouvelle branche vers la branche d'origine, la réponse acceptée fonctionnera. 

0
Rick Wildes