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*"
Contenu
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"
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 ».
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