Aller au contenu

Balises Git

Description

Les balises sont des références pointant vers des commits spécifiques dans l'historique Git. La fonction principale du marquage est de capturer un point précis de l'historique, généralement pour indiquer une version de publication. Les balises sont immuables ; une fois créées, elles ne suivent pas l'historique des commits.

gittag

Créer une balise Git

Pour créer une balise Git, exécutez la commande ci-dessous :

git tag

bash
git tag <name-of-tag>

Lors de la création d'une balise, remplacez <name-of-tag> par un identifiant sémantique de l'état du dépôt. Git prend en charge deux types de balises : annotées et légères. La principale différence entre elles réside dans la quantité de métadonnées qu'elles stockent.

Balises annotées

Git stocke les balises annotées comme des objets complets dans sa base de données. Elles contiennent des métadonnées supplémentaires, telles que le nom, l'adresse e-mail et la date de l'auteur de la balise. Comme les commits, les balises annotées incluent un message de marquage. Elles peuvent également être signées et vérifiées à l'aide de GPG (GNU Privacy Guard) à des fins de sécurité.

L'exécution de la commande ci-dessous crée une nouvelle balise annotée avec l'ID v1.3. L'éditeur de texte par défaut configuré s'ouvrira alors, vous invitant à saisir un message de marquage.

git annotated tag

bash
git tag -a v1.3

Balises légères

La commande ci-dessous crée une balise légère identifiée comme v1.3-lw. Les balises légères sont créées sans les options -a, -s ou -m. Elles stockent simplement un pointeur vers un objet commit spécifique dans le répertoire .git/refs/tags/.

git lightweight tag

bash
git tag v1.3-lw

Liste des balises

Exécutez la commande ci-dessous pour lister les balises stockées :

git tag command

bash
git tag

En résultat, vous verrez une sortie similaire à ceci :

git tag output

bash
v0.10.0
v0.10.0-rc1
v0.11.0
v0.11.0-rc1
v0.11.1
v0.11.2
v0.12.0
v0.12.0-rc1
v0.12.1
v0.12.2
v0.13.0
v0.13.0-rc1
v0.13.0-rc2

Vous pouvez utiliser l'option -l avec une expression générique pour filtrer la liste des balises :

git tag with wildcard

bash
git tag -l *-rc*
v0.10.0-rc1
v0.11.0-rc1
v0.12.0-rc1
v0.13.0-rc1
v0.13.0-rc2
v0.14.0-rc1
v0.9.0-rc1
v15.0.0-rc.1
v15.0.0-rc.2
v15.4.0-rc.3

Marquer des commits anciens

Par défaut, git tag crée une balise sur le commit référencé par HEAD. Vous pouvez également passer une référence de commit spécifique pour marquer un commit plus ancien à la place. Exécutez la commande git log pour afficher les commits plus anciens. Dans l'exemple ci-dessous, un commit de fusion est utilisé pour la nouvelle balise. Pour référencer un commit spécifique, fournissez son hachage SHA :

git log

bash
git log --pretty=oneline
29389857951b64cf874c3557a0f3547bd83b899a Merging branch 'crossword'
b4a5697498bd301d84096da251c98a07c7723e65 init method for crossword
89f3aaab4479697da7686c15f77a3d64d9165190 little changes in logic
3a4a271eda8725415634dd79daabbc4d9b6008e Merging branch 'how-it-works'

Exécutez la commande git tag pour créer une nouvelle balise annotée avec l'ID v1.2 pour le commit sélectionné dans l'exemple précédent :

git tag for old commits

bash
git tag -a v1.2 29389857951b64cf874c3557a0f3547bd83b899a

Remplacer des balises existantes

Tenter de créer une balise avec un identifiant existant entraînera une erreur. Utilisez l'option -f (force) pour mettre à jour une balise existante, ce qui écrasera son contenu précédent.

git tag replacing old tags

bash
git tag -a -f v1.3 29389857951b64cf874c3557a0f3547bd83b899a

Pousser des balises vers un dépôt distant

Pour pousser une balise vers un dépôt distant, passez le nom de la balise à la commande git push. Cela garantit que les autres utilisateurs qui clonent le dépôt recevront la nouvelle balise.

git tag, pushing to remote

bash
git push origin v1.3
Counting objects: 9, done.
Delta compression using up to 5 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (12/12), 2.05 KiB | 0 bytes/s, done.
Total 12 (delta 3), reused 0 (delta 0)
To [email protected]:gr8/gittagdocs.git
* [new tag] v1.3 -> v1.3

Vérifier des balises

Vous pouvez utiliser la commande git checkout pour inspecter un commit marqué. Cela place le dépôt dans un état HEAD détaché. Tout nouveau commit effectué ici n'appartiendra pas à une branche et ne sera accessible que via son hachage SHA.

git tag, checking over tags

bash
git checkout v1.3

Supprimer des balises

Vous pouvez supprimer une balise en passant l'option -d et l'identifiant de la balise à git tag. Voir l'exemple ci-dessous :

git tag, deleting tags

bash
git tag
v1
v2
v3
git tag -d v1
git tag
v2
v3

Pratique

Quelles sont les fonctionnalités et les options de la commande 'git tag' dans Git ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.