Git/Étiquetage (tags)

< Git

Principe

modifier

Git permet d'ajouter des étiquettes (tags en anglais), parfois appelées "balises" (par exemple sur Bitbucket), pour spécifier des versions dans les historiques[1] :

git tag -a tag1

ou :

git tag -f tag1 HEAD

Pour lister les tags :

git tag

Se positionner sur un tag :

git checkout tags/0.3.4

Envoyer les tags sur le serveur distant :

git push --tags

Supprimer un tag local :

git tag -d v1.4.9

Supprimer un tag sur le serveur :

git push --delete origin v1.4.9

 

Il est déconseillé de supprimer les tags pour tracer l'historique des codes déployés.

Pour recréer un tag :

git push --delete origin v0.0.1 ; git tag -a v0.0.1 -f && git push --tags

Ou plus rapidement en gardant son message :

git tag -d 3.0.2 ; git tag -a 3.0.2 -f -m "Résumé" && git push --tags -f

Étiquettes vs branches

modifier

Les étiquettes comme les branches pointent vers une soumission, la différence est que la branche pointe toujours en haut de la ligne de développement et est remplacée par les soumissions postérieures, alors que l'étiquette demeure inchangée.

En pratique, les tags sont donc utilisés pour désigner les versions du programme, et sont donc nommés avec des numéros, si possible selon la SemVer (ex : v1.0.2)[2].

 
Exemple de branches avec des tags.


 En cas de hotfix de dernière minute, on peut déplacer le tag sur un autre commit, en le supprimant puis le recréant[3] :
git push origin :refs/tags/v1.1.0
git tag -fa v1.1.0
git push origin master --tags

Références

modifier