Comment obtenir des étiquettes sur les commit courant
J'ai un référentiel qui a plusieurs balises sur la même livraison. Par exemple:
commit #3 <--- TAG1 /TAG2 /TAG3
|
commit #2 <--- TAG4/TAG5
|
commit #1 <--- TAG6/TAG7
J'aimerais savoir quelles balises sont sur un particulier de s'engager. Par exemple, si je vérifie s'engager 1, je voudrais obtenir la balise 6 et tag 7.
J'ai essayé:
git checkout <commit 1>
git tag --contains
qui affiche les balises 1-7.
git checkout <commit 1>
git describe --tags HEAD
affichés de la balise 6.
Quelle est la bonne façon de le faire dans Git?
Vous devez vous connecter pour publier un commentaire.
Pour l'achèvement (grâce à Ciro Santili de réponse), git tag-a eu l'option --points à que fait exactement ce que Shawn est de demander.
Il n'a pas pour effet à la liste des étiquettes à mettre sur l'avant s'engage comme Jonathan Hartley a déclaré dans son commentaire de l'git tag --contient.
git help tag
:--points-at <object> – Only list tags of the given object (HEAD if not specified). Implies --list.
. Donc-l
etHEAD
peut être omis.Je suppose que peut-être que git a eu quelques options ajoutées depuis que cette question a été posée, mais comme il vient encore en assez haut sur google, j'ai pensé que je pourrais ajouter que cette méthode fonctionne très bien:
Ou remplacer
HEAD
avec toute autre valide commettre référence que vous souhaitez.Cela permettra d'imprimer une nouvelle ligne liste séparée par des balises si la TÊTE contient des balises, et d'impression de rien sinon, donc, vous obtiendrez:
Et bien sûr, il ya beaucoup de façons différentes autres shell outils que vous pouvez le format de sortie une fois que vous l'avez...
-l
? Dans le manuel il semble que-l
sans args listes de toutes les balises, ce qui est la même quetag
sans arguments.-l
car elle fait en sorte que je n'ose pas ajouter une nouvelle balise, si j'oublie le--contains
drapeau.Quelques améliorations sur William réponse:
La sortie ressemble à ceci:
Ce n'est pas l'idéal, mais peut-être utile:
Vous pourriez jouer avec le format d'obtenir exactement ce que vous voulez.
Cette affiche de la validation de l'id de la TÊTE, ainsi que toutes les branches ou les balises qui se trouvent être exactement à la TÊTE.
Exemple de sortie:
Voici un raffinement de @JoshLee réponse, qui manipule la sortie de la liste uniquement les balises (pas de branches, ni TÊTE) et supprime le mot "tag:" et décoratif de la ponctuation. Ceci est utile si vous écrivez quelque chose qui a besoin de trouver des repères actuels (par exemple, les mettre dans votre invite de commande):
Exemple de sortie:
git tag --points-at
de https://git-scm.com/docs/git-tag