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 ?

2voto

Pyr3z Points 21

Mon problème avec les premières réponses ici

-spécifiquement des solutions comme

git branch -a --contains TAG

et similaire a eu le problème de pouvoir lister plusieurs branches dans la sortie, et il n'est pas clair quelle est celle dans laquelle la balise a réellement été créée :

$  git branch --contains TAG
   branch-A
   branch-B
 * branch-C
   branch-D

(le * marque la branche actuelle = non pertinent)

Oh, et le triage avec --sort=-committerdate o =-taggerdate ne clarifie pas exactement la branche originale, puisque ces attributs ref peuvent être mis à jour par des actions non liées au TAG en question.

git show tag

DONNE la vraie réponse à ma question ("sur quelle branche cette balise a-t-elle été créée ?"), mais la fonction git show est assez volumineux par défaut, et ce que je cherchais, c'était un format de sortie efficace et convivial pour la machine afin de le passer à des scripts automatisés.

Il s'avère donc, git log est la commande principale pour le travail :

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

Cela donne des résultats comme :

tag: TAG, origin/branch-B, branch-B

Ce qui nous indique exactement la branche d'où provient l'étiquette, et est beaucoup plus lisible par les machines.

0voto

Stony Points 7677

Avec un Tag, vous marquez une référence. Donc quand vous êtes sur une branche de développement et que vous marquez cet état. Votre étiquette est sur la référence actuelle. Donc dans ce cas, vous pouvez regarder gitk ou un autre outil où l'arbre est affiché. Vous pouvez alors voir sur quelle référence se trouve l'étiquette.

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

Voici une bonne explication.

0voto

ttfreeman Points 541

Une étiquette fait toujours référence à un numéro d'engagement. En utilisant ce numéro de tag, vous pouvez trouver la branche à partir de laquelle le tag a été placé en utilisant ceci :

git for-each-ref | grep ${commit_num} | grep origin | sed "s/.*\///"

-1voto

Étape 1. Obtenez l'identifiant de livraison :

git show {tag name}

Étape 2. Copiez l'identifiant du commit et collez pour obtenir toutes les branches :

By example:
git branch --contains 94a152c2d1c6830c5a044ecf20526d51e64bda83

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