109 votes

Git : Comment savoir sur quelle branche se trouve un tag ?

Je suis actuellement occupé avec un projet comportant de nombreuses branches et j'ai une étiquette pour les dernières modifications qui ont été faites sur l'une des branches. Mais il n'est pas clair pour moi sur quelle branche se trouve cette étiquette.

Comment savoir sur quelle branche se trouve un tag ?

149voto

VonC Points 414372

Encore plus court :

git branch --contains tags/<tag>

(cela fonctionne pour toute référence arborescente)


Si vous pouvez trouver qui engage une balise se réfère à :

 git rev-parse --verify tags/<tag>^{commit}
 # or, shorter:
 git rev-parse tags/<tag>~0

Alors vous pouvez trouver quelle branche contient ce commit .

git branch --contains <commit>

Comme a commenté ci-dessous par utilisateur3356885 pour les branches récupérées (branches dans l'espace de noms remotes)

git branch -a --contains tags/<tag>
git branch -a --contains <commit>

Comme indiqué dans Pyr3z 's réponse pour chaque balise candidate listée ci-dessus, vous pouvez ajouter :

git log -1 --pretty='%D' TAG

Cela montrera les branches associées à ce tag.

40voto

david1977 Points 639

Si "git branch --contains " ne fait rien, assurez-vous que vous incluez toutes les branches, à la fois les branches distantes et locales :

git branch -a --contains <tag>

D'après l'aide de git :

Actions spécifiques de git-branch : -a, --all listent à la fois les branches distantes et les branches locales

8voto

user773376 Points 22

En ce qui concerne le commentaire de @VonC sur la recherche du commit référencé par une balise, il suffit d'utiliser :

git show <tag>

Puisqu'une balise est liée à un commit spécifique, elle peut être utilisée pour afficher ce commit - ce qui vous donnera les détails complets du commit.

6voto

Peter Jaric Points 2172
git branch --contains tag

ne fait rien pour moi, mais j'ai trouvé ma solution à ce problème en git gui .

Commencez comme ça :

git gui

(Sur mon Ubuntu, j'ai dû l'installer d'abord avec sudo apt-get install git-gui .)

Puis j'ai sélectionné l'élément de menu Dépôt -> Visualiser l'historique de toutes les branches . Dans la fenêtre résultante, j'ai ensuite sélectionné l'élément de menu Fichier -> Liste des références .

Une autre fenêtre s'est ouverte, répertoriant tous mes tags (et autres références). Celles-ci sont cliquables et après avoir cliqué sur l'une d'entre elles, il me suffisait de vérifier le cadre en bas à gauche pour la liste des branches. Comme ceci :

Parent: somesha (message)
Parent: someothersha (another message)
Child:  anothersha (yet another message)
Branches: branch1, master, remotes/origin/branch2, remotes/upstream/branch1, etc
Follows: v1.1.2
Precedes: v1.1.4

2voto

Swags Points 21

Vous pouvez également essayer ceci, j'ai eu un cas similaire et cela a fonctionné pour moi.

git ls-remote --heads origin | grep $CI_COMMIT_SHORT_SHA  | sed "s/.*\///"

Légèrement différent mais en s'inspirant de la réponse de @ttfreeman

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X