Comment lister toutes les étiquettes Git?

dans mon dépôt, j'ai créé des balises en utilisant les commandes suivantes.

git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'

comment répertorier toutes les balises du dépôt?

430
demandé sur Léo Léopold Hertz 준영 2009-06-30 19:52:36

9 réponses

git tag

devrait suffire. Voir git tag l'homme page


vous avez aussi:

git tag -l <pattern>

liste tags avec des noms qui correspondent au modèle donné (ou tous si aucun modèle n'est donné).

En tapant "git tag" sans arguments, vous avez aussi la liste de toutes les balises.


plus récemment (" comment trier les étiquettes git? ", pour Git 2.0+)

git tag --sort=<type>

trier dans un ordre précis.

le type supporté est:

  • " refname "(ordre lexicographique),
  • version:refname "or v:refname " (les noms d'étiquettes sont traités comme des versions).

Prepend "-" pour inverser l'ordre de tri.


qui énumère les deux:

  • tags annotés : objets complets stockés dans la base de données Git. Ils sont contrôlés; contiennent le nom du tagger, l'e-mail et la date; ont un message de marquage; et peuvent être signés et vérifiés avec GNU Privacy Guard (GPG).
  • léger tags : simple pointeur à un commettre

Note: l'article git ready sur le marquage désapprouve le marquage léger.

sans arguments, git tag crée une étiquette" légère " qui est essentiellement une branche qui ne bouge jamais.

Les étiquettes légères sont encore utiles cependant, peut-être pour marquer une bonne (ou mauvaise) version connue, ou un tas de commits que vous pouvez avoir besoin d'utiliser dans l'avenir.

Néanmoins, vous ne voulez probablement pas pousser ces types d'étiquettes .

normalement, vous voulez au moins passer l'option-a pour créer une étiquette non signée, ou signer l'étiquette avec votre clé GPG via les options-s ou-U.


cela étant dit, Charles Bailey "souligne qu'un git tag -m "..." " implique en fait un étiquette (non signée) appropriée (option ' -a '), et non légère. Donc vous êtes bon avec votre commande initiale.


cela diffère de:

git show-ref --tags -d

qui liste les tags avec leurs commits (voir " git Tag list, display commit sha1 hashes ").

Notez le -d afin de déréférencer l'objet tag annoté (qui ont leur propre commit SHA1) et le tagged commettre.

de même, git show --name-only <aTag> listerait l'étiquette et la propagation associée.

623
répondu VonC 2017-05-23 11:55:01

pour lister les étiquettes que je préfère:

git tag -n

le drapeau -n affiche la première ligne du message d'annotation avec la balise, ou la première ligne du message de propagation si la balise n'est pas annotée.

vous pouvez également faire git tag -n5 pour montrer les 5 premières lignes de l'annotation.

151
répondu finn 2017-09-12 14:23:26

aussi git show-ref est plutôt utile, de sorte que vous pouvez directement associer tags avec correspondant commits :

$ git tag
osgeolive-6.5
v8.0
...

$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...
37
répondu Campa 2013-06-14 05:44:21

et voici comment vous trouvez les tags distants:

git ls-remote --tags origin

9
répondu Dimitri Dewaele 2018-01-23 07:46:14

Essayer de faire git tag il devrait être suffisant si pas essayer de faire git fetch puis git tag .

7
répondu toto 2013-04-29 17:20:55

pour voir les détails sur la dernière étiquette disponible que j'utilise parfois:

git show `git describe` --pretty=fuller
7
répondu Andrei Sura 2016-08-17 19:43:34

si vous voulez vérifier votre nom d'étiquette localement, vous devez aller sur le chemin où vous avez créé l'étiquette(chemin local). Dire où vous avez mis vos objets. Puis tapez la commande:

git show --name-only <tagname>

il affichera tous les objets sous ce nom d'étiquette. Je travaille dans Teradata et l'objet de moyens de vue, table, etc

3
répondu Tanaya 2017-05-09 13:41:30

vous pouvez énumérer toutes les étiquettes existantes git tag ou vous pouvez filtrer la liste avec git tag -l 'v1.1.*' , où * agit comme un joker. Il retournera une liste d'étiquettes marquées v1.1 .

, Vous remarquerez que lorsque vous appelez git tag vous n'obtenez pas de voir le contenu de vos annotations. Pour les prévisualiser, vous devez ajouter -n à votre commande: git tag -n2 .

$ git tag -l-n2 v1.Version 1.0 v1.1 Version 1.1

la commande Liste toutes les étiquettes existantes avec un maximum de 3 lignes de leur message d'étiquette. Par défaut -n ne montre que la première ligne. Pour plus d'informations soyez sûr de vérifier cet article lié à l'étiquette ainsi.

1
répondu Nesha Zoric 2018-06-14 07:57:31

énumérant les étiquettes disponibles dans Git est simple. Il suffit de taper git tag (avec option -l ou --list ).

$ git tag
v5.5
v6.5

vous pouvez également rechercher des étiquettes qui correspondent à un motif particulier.

$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2

obtenir la dernière étiquette sur le dépôt git

la commande trouve la balise la plus récente qui est accessible à partir d'un commit. Si la balise points à le commettre, alors que l'étiquette est affichée. Sinon, il suffixe le nom de la balise avec le nombre de commits supplémentaires sur le dessus de l'objet étiqueté et le nom abrégé de l'objet de la plus récente commit.

git describe

avec --abbrev défini à 0 , la commande peut être utilisée pour trouver le plus proche tagname sans aucun suffixe:

git describe --abbrev=0

autres exemples:

git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch

Comment tailler git local des balises qui n'existent pas sur à distance

pour simplifier, si vous essayez de faire quelque chose comme git fetch -p -t , il ne fonctionnera pas à partir de la version git 1.9.4 .

cependant, il existe une solution simple qui fonctionne toujours dans les dernières versions:

git tag -l | xargs git tag -d  // remove all local tags
git fetch -t                   // fetch remote tags
0
répondu Lyes CHIOUKH 2018-07-20 15:18:56