git tag
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>...]Options
Choisir la bonne option
Léger ou annoté
Deux sortes de tags
| Commande | Contient | À utiliser pour |
|---|---|---|
git tag v1.0 | Seulement le nom | Marque-pages personnels |
git tag -a v1.0 -m "..." | Auteur, date, message | Versions publiées |
Tag ou branche
Les deux nomment un commit
| Commande | Avance à chaque commit ? | Poussé par git push ? |
|---|---|---|
Branch | Oui | Oui (la branche actuelle) |
Tag | Jamais | Non, poussez-le explicitement |
Exemples
Taguer le commit actuel
git tag v1.0Un 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.0Partager 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
git switch main && git pullÊtre sur le dernier main
git tag -a v1.0 -m "First release"Créer le tag de version
git push origin v1.0Le 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
git switch --detach v1.0, ou créez une branche à partir de lui : git switch -c hotfix v1.0.
git push --tags (ou git push --follow-tags pour les tags annotés sur les commits poussés).
Il nomme un commit d’après le tag le plus proche, p. ex. v1.0-3-g1a2b3c4.