A quoi sert Git tag?

Git tag sert en général à marquer un version de release majeure. Par exemple lorsque votre logiciel passe à la version 2.0.0 ou à la version 1.5.0, voire 1.5.4 quoique.

Comme d’habitude avec Git, chaque commande fait beaucoup de choses, mais nous pouvons voir les choses de façon plus simple (point de vue adopté ici), c’est comment utiliser les commandes de Git pour notre travail quotidien de développeur, où mettre le curseur dans la connaissance de ses commandes?

Ici j’ai listé pour ma mémoire et pour votre information les choses communes qu’on peut faire avec git tag sans aller trop en profondeur.

#add a tag : lightweight(pointer to a commit) or annotated
#lightweight
git tag v1.4

#annotated
git tag -a v1.4 -m "my version 1.4"

#push tag information
#en effet un push classique ne pousse pas le tag vers le remote repository
git push origin v1.4

#list tag:
git tag

#search by pattern
git tag  -l "v1.8.5*"

Lightweight tag

C’est dans ce cas un simple label qui pointe vers un commit en particulier, donc ça rend plus lisible le commit.

Annotated tag

Ici le tag n’est pas seulement un pointeur avec un label lisible, mais il contient les informations sur le commit, et les informations sont tirées de l’index .git.

Effacer un tag localement et en remote

#effacer le tag v1.2
git tag -d v1.2
#effacer le tag distant
git push --delete origin v1.2

git push origin :refs/tags/v1.0  #utiliser pour faire le distingo entre une branche et un tag

Créer un tag sur un commit précédent (commit spécifique)

Il peut arriver que vous n’ayez pas taggé un commit lors d’une mise en production par exemple, dans ce cas vous pouvez tagger un commit plus ancien. Par défaut le tag se fait sur le HEAD qui est le plus récent.

Faites un git log -n ou un git log --pretty=oneline

#tagger sur un commit en particulier, tag annoté
git tag -a v1.2 9fceb02 -m "Message here"

Visualiser les tags dans github.com

Pour voir les tags, il suffit d’aller dans la page d’accueil de votre dépôt et de cliquer sur l’onglet « release ».

Tirer les tags depuis upstream

Si vous avez forké un projet, et que l’origin du projet (appelé upstream) a créé un tags, la synchronisation avec une branch ne fera pas apparaitre dans votre repository le tags.

Par contre en local vous pouvez tirer le tag:

git fetch --tags upstream
Retour en haut