Comment interroger git pour savoir quelles branches contiennent un commit donné? gitk liste généralement les branches, à moins qu’elles ne soient trop nombreuses, auquel cas il est simplement indiqué "many (38)" ou quelque chose du genre. J'ai besoin de connaître la liste complète, ou du moins si certaines branches contiennent le commit.
Depuis la page de manuel de git-branch :
_ git branch --contains <commit>
_
Répertorie uniquement les branches qui contiennent la validation spécifiée (HEAD si non spécifié). Implique _
--list
_.
_ git branch -r --contains <commit>
_
Listes branches de suivi à distance aussi (comme mentionné dans ser3941992réponse ci-dessous), à savoir "les branches locales ayant une relation directe avec une branche distante".
Voir aussi cet article git ready .
La balise _
--contains
_ déterminera si un commit a déjà été introduit dans votre branche. Vous avez peut-être reçu un commit SHA d'un correctif que vous pensiez avoir appliqué, ou vous voulez simplement vérifier si le commit pour votre projet open source préféré qui réduit l'utilisation de la mémoire de 75% est encore arrivé.
_$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <[email protected]>
Date: Wed Apr 1 20:38:59 2009 -0400
Green all around, finally.
$ git branch --contains d590f2
tests
* master
_
Remarque: si la validation est sur une branche de suivi distante , ajoutez l'option _-a
_ .
(comme MichielB commentaires ci-dessous )
_git branch -a --contains <commit>
_
MatrixFrog indique qu'il indique uniquement les branches contenant ce exact commit.
Si vous voulez savoir quelles branches contiennent un commit "équivalent" (c’est-à-dire quelles branches ont choisi ce commit) git cherry
= :
Parce que _
git cherry
_ compare le changeset plutôt que l'id de commit (sha1) , vous pouvez utiliser _git cherry
_ pour savoir si un commit vous avez créé localement a été appliqué _<upstream>
_ sous un ID de validation différent.
Par exemple, cela se produira si vous envoyez des correctifs _<upstream>
_ par courrier électronique plutôt que de pousser ou de tirer directement les commits.
_ __*__*__*__*__> <upstream>
/
fork-point
\__+__+__-__+__+__-__+__> <head>
_
(Ici, les commits marqués '_-
_' ne s'afficheront pas avec _git cherry
_, ce qui signifie qu'ils sont déjà présents dans _<upstream>
_.)
Vous pouvez courir:
git log <SHA1>..HEAD --ancestry-path --merges
Vous pouvez trouver le commentaire de la dernière validation dans le résultat branche d'origine nom
Exemple:
c---e---g--- feature
/ \
-a---b---d---f---h---j--- master
git log e..master --ancestry-path --merges
commit h
Merge: g f
Author: Eugen Konkov <>
Date: Sat Oct 1 00:54:18 2016 +0300
Merge branch 'feature' into master