web-dev-qa-db-fra.com

Comment lister tous les tags Git?

Dans mon référentiel, j'ai créé des balises à l'aide des 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 listez-vous toutes les balises dans le référentiel?

git tag

devrait suffire. Voir page de manuel git tag


Vous avez aussi:

git tag -l <pattern>

Liste des étiquettes avec des noms correspondant au modèle donné (ou toutes si aucun modèle n’est donné).
Taper "git tag" sans argument, répertorie également toutes les balises.


Plus récemment (" Comment trier les balises git? ", pour Git 2.0+)

git tag --sort=<type>

Trier dans un ordre spécifique.

Le type supporté est:

  • "refname" (ordre lexicographique),
  • "version:refname" ou "v:refname" (les noms de balises sont traités comme des versions).

Ajoutez le préfixe "-" pour inverser l'ordre de tri.


Cela énumère les deux:

  • balises annotées: objets complets stockés dans la base de données Git. Ils sont contrôlés; contient le nom du tagueur, son adresse e-mail et sa date; avoir un message de marquage; et peut être signé et vérifié avec GNU Privacy Guard (GPG).
  • balises légères: simple pointeur sur un commit existant

Remarque: le article de git ready sur le balisage désapprouve les balises légères.

Sans argument, git tag crée une balise "légère" qui est essentiellement une branche qui ne se déplace jamais.
Les balises légères sont néanmoins utiles, peut-être pour marquer une bonne version (ou une mauvaise) connue, ou un groupe de commits que vous devrez peut-être utiliser à l'avenir.
Néanmoins, vous ne voudrez probablement pas utiliser ce type de balises .

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


Cela étant dit, Charles Bailey indique qu'un "git tag -m "..."" implique en réalité une balise appropriée (non signée annotée) (option " -a '), et pas un poids léger. Donc, vous êtes bon avec votre commande initiale.


Cela diffère de:

git show-ref --tags -d

Qui liste les balises avec leurs commits (voir " Liste de balises Git, affiche les hachages de commit sha1 ").
Notez le -d afin de déréférencer l’objet de la balise annotée (qui a son propre commit SHA1) et d’afficher le commit réel étiqueté.

De même, git show --name-only <aTag> listerait la balise et la validation associée.

767
VonC

Pour lister les tags que je préfère:

git tag -n

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

Vous pouvez également utiliser git tag -n5 pour afficher les 5 premières lignes de l'annotation.

165
finn

De plus, git show-ref est plutôt utile, vous pouvez donc associer directement tags avec le correspondant commits:

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

$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...
40
Campa

Et voici comment trouver les balises distantes:

git ls-remote --tags Origin

22
Dimitri Dewaele

Essayez de faire git tag cela devrait suffire sinon essayez de faire git fetch puis git tag.

11
toto

Pour voir les détails de la dernière balise disponible que j'utilise parfois:

git show `git describe` --pretty=fuller
9
Andrei Sura

Lister les tags disponibles dans Git est simple. Il suffit de taper git tag (avec -l ou --list en option).

$ git tag
v5.5
v6.5

Vous pouvez également rechercher des étiquettes correspondant à un modèle particulier.

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

Récupération de la dernière balise sur le référentiel git

La commande trouve la dernière balise accessible à partir d'un commit. Si la balise pointe sur la validation, seule la balise est affichée. Sinon, le nom de la balise est suffixé du nombre de validations supplémentaires ajoutées à l'objet marqué et du nom abrégé de la validation la plus récente.

git describe

Avec --abbrev défini sur 0, la commande peut être utilisée pour rechercher le tagname le plus proche sans 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 élaguer les balises git locales qui n'existent pas à distance

En termes simples, si vous essayez de faire quelque chose comme git fetch -p -t, cela ne fonctionnera pas à partir de la version git 1.9.4.

Cependant, il existe une solution de contournement 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
4
Lyes CHIOUKH

Si vous voulez vérifier votre nom de balise localement, vous devez vous rendre au chemin où vous avez créé la balise (chemin local). Cela signifie où vous avez mis vos objets. Puis tapez la commande:

git show --name-only <tagname>

Il montrera tous les objets sous le nom de cette balise. Je travaille dans Teradata et objet signifie vue, table, etc.

4
Tanaya

Vous pouvez répertorier toutes les balises existantes git tag ou filtrer la liste avec git tag -l 'v1.1.*', où * agit comme un caractère générique. Il renverra une liste de balises marquées avec v1.1.

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

balise $ git -l -n2 v1.0 Version 1.0 v1.1 Version 1.1

La commande répertorie toutes les balises existantes avec au maximum 3 lignes de leur message. Par défaut, -n n'affiche que la première ligne. Pour plus d’informations, assurez-vous de vérifier cet article associé à la balise également.

2
Nesha Zoric