web-dev-qa-db-fra.com

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

Je suis actuellement occupé par un projet avec beaucoup de branches et j'ai une balise pour les derniers changements qui ont été effectués sur l'une des branches. Mais je ne sais pas sur quelle branche se trouve cette balise.

Comment savoir sur quelle branche se trouve un tag?

52

Encore plus court:

git branch --contains tags/<tag>

(cela fonctionne pour n'importe quelle référence d'arbre)


Si vous pouvez trouver à quel commit une balise fait référence :

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

Ensuite, vous pouvez trouver quelle branche contient ce commit .

git branch --contains <commit>

Comme commenté ci-dessous par ser3356885 , pour les branches extraites (branches dans l'espace de noms des télécommandes)

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

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

git branch -a --contains <tag>

De l'aide de git:

Actions spécifiques à git-branch: -a, --all liste à la fois le suivi à distance et les branches locales

17
david1977
git branch --contains tag

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

Commencez comme ceci:

git gui

(Sur mon Ubuntu, je devais d'abord l'installer avec Sudo apt-get install git-gui.)

Ensuite, j'ai sélectionné l'élément de menu Repository -> Visualize All Branch History . 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 est apparue, répertoriant toutes mes balises (et autres références). Ceux-ci sont cliquables et après avoir cliqué sur l'un d'eux, je n'ai eu qu'à vérifier le cadre en bas à gauche pour la liste des branches. Comme ça:

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
5
Peter Jaric

En ce qui concerne le commentaire de @ VonC sur la recherche du commit référencé par une balise, utilisez simplement:

git show <tag>

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

0
arpieb

Avec un tag, vous marquez une référence. Donc, lorsque vous êtes sur une branche de développement et marquez cet état. Votre tag est sur la référence réelle. Donc, dans ce cas, vous pouvez regarder gitk ou un autre outil où l'arbre est affiché. Là, vous pouvez voir sur quelle référence se trouve le Tag.

git: Y a-t-il quelque chose comme des balises par branche?
http://git-scm.com/book/en/Git-Basics-Tagging

Voici une bonne explication.

0
René Höhle