105 votes

Comment lister toutes les balises pointant vers un commit spécifique dans git

J'ai vu les commandes git describe et git-name-rev mais je n'ai pas réussi à les faire lister plus d'une balise.

Exemple: j'ai le sha1 48eb354 et je sais que les balises A et B le désignent. Je souhaite donc une commande git git {something} 48eb354 produisant une sortie similaire à "A, B". Je ne suis pas intéressé à connaître les références par rapport à d’autres tags ou des branches juste des correspondances exactes pour les tags.

245voto

user2159398 Points 241

git tag --points-at HEAD

Affiche toutes les balises sur HEAD, vous pouvez également remplacer HEAD par n’importe quel identifiant sha1.

50voto

max Points 16106

git show-ref --tags -d | grep ^48eb354 | sed -e 's,.* refs/tags/,,' -e 's/\^{}//'

devrait fonctionner pour les balises légères et annotées.

6voto

Aristotle Pagaltzis Points 43253
 git for-each-ref 

Dommage que cela ne se fasse pas plus facilement. Un autre indicateur sur --format='%(objectname) %(refname:short)' refs/tags/ | grep ^ pour inclure les ID de validation pourrait exprimer naturellement cette invocation $commit_id .

1voto

Sylvain Defresne Points 15231

La commande suivante effectue le travail, mais analyse directement le contenu du répertoire .git et risque donc de tomber en panne si le format du référentiel git change.

 grep -l -r -e '^48eb354' .git/refs/tags|sed -e 's,.*/,,'
 

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