git tag

Branches et fusions

Créer, lister et supprimer des tags


La commande 'git tag' donne un nom fixe à un commit, en général une version comme v1.0. Contrairement à une branche, un tag ne bouge jamais. Un tag léger n’est qu’un nom ; un tag annoté (-a) est un objet complet avec l’auteur du tag, une date et un message — c’est le type recommandé pour les versions. Les tags ne sont pas poussés automatiquement : poussez-les avec git push origin <tag>.

Synopsis

git tag [-a | -s] [-f] [-m <msg>] <tagname> [<commit>]
git tag -d <tagname>...
git tag [-n[<num>]] -l [<pattern>...]
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Options

Cliquez sur une option pour la déplier

Débutant (3)

Créer un objet tag annoté avec auteur, date et message.

RecommandéUne version doit indiquer qui l’a taguée, quand et pourquoi

Exemple

git tag -a v1.0 -m "First release"

Lister les tags, éventuellement seulement ceux qui correspondent à un motif.

RecommandéFiltrer une longue liste de tags avec un motif

Exemple

git tag -l "v1.*"

Supprimer les tags locaux indiqués.

Si nécessaireCorriger un tag local erroné ; évitez de supprimer des tags utilisés par d’autres

Exemple

git tag -d v1.0

Intermédiaire (1)

Remplacer un tag existant en le déplaçant vers un autre commit.

DéconseilléDéplacer un tag publié embrouille tous ceux qui l’ont récupéré

Exemple

git tag -f v1.0

Choisir la bonne option

Léger ou annoté

Deux sortes de tags

CommandeContientÀ utiliser pour
git tag v1.0Seulement le nomMarque-pages personnels
git tag -a v1.0 -m "..."Auteur, date, messageVersions publiées

Tag ou branche

Les deux nomment un commit

CommandeAvance à chaque commit ?Poussé par git push ?
BranchOuiOui (la branche actuelle)
TagJamaisNon, poussez-le explicitement

Exemples

Taguer le commit actuel

git tag v1.0

Un tag léger nommé v1.0.


Tag annoté

git tag -a v1.0 -m "First release"

Un tag avec auteur, date et message.


Pousser un tag

git push origin v1.0

Partager le tag sur le dépôt distant.


Lister les tags

git tag -l "v1.*"

Lister les tags qui correspondent à un motif.

Exemples de workflows

1
git switch main && git pull

Être sur le dernier main

2
git tag -a v1.0 -m "First release"

Créer le tag de version

3
git push origin v1.0

Le partager

Dépannage

fatal: tag 'v1.0' already exists

Cause : Le nom est déjà pris

Choisissez un autre nom, ou supprimez-le d’abord (git tag -d v1.0)

Mon tag n’est pas sur GitHub

Cause : git push n’envoie pas les tags

git push origin v1.0, ou git push --tags

Un tag supprimé revient après un fetch

Cause : Il existe encore sur le dépôt distant

Supprimez-le aussi là-bas : git push origin --delete v1.0

Astuces et pièges

Bonnes pratiques

  • ✓Utilisez des tags annotés pour les versions.
  • ✓Suivez le versionnage sémantique (v1.2.3).
  • ✓Ne déplacez ni ne réutilisez jamais un tag une fois publié.

Erreurs fréquentes

  • ✗S’attendre à ce que git push envoie les tags — poussez-les explicitement ou utilisez --follow-tags.
  • ✗Utiliser des tags légers pour les versions : ils n’enregistrent ni auteur, ni date, ni message.
  • ✗Déplacer un tag que d’autres ont déjà récupéré.

FAQ

A:

git switch --detach v1.0, ou créez une branche à partir de lui : git switch -c hotfix v1.0.

A:

git push --tags (ou git push --follow-tags pour les tags annotés sur les commits poussés).

A:

Il nomme un commit d’après le tag le plus proche, p. ex. v1.0-3-g1a2b3c4.