Outils pour utilisateurs

Outils du site


gestion_configuration:git:tags

Gestion des tags

Ajouter un tag

Ceci ajoute un tag lightweight:

$ git tag nom-du-tag

Ajoute un tag annoté, par exemple pour une version 5.2.1 :

$ git tag -a 5.2.1 -m "5.2.1"

Push tag

Pour pousser un tag sur origin:

$ git push origin nom-du-tag

Il n'est pas recommandé de le faire, mais on peut pousser tous les tags:

$ git push --tags

Supprimer un tag

Localement:

$ git tag -d release01

Remote:

$ git push origin :refs/tags/release01

Aussi on peut faire:

$ git push --delete origin release01

Source

Chercher un commit par tag

On se sert de log pour se faire. Le 4.10 est le nom du tag:

$ git --no-pager log -1 4.10 --pretty="%h - %an : %s (%ci)"

Signer des tags

Utiliser gpg2: GNUPG

Installer gpg2:

$ sudo apt-get install gnupg2 -y  

Dire à Git d'utiliser gpg2:

$ git config --global gpg.program gpg2

Assigner une clé à Git:

$ gpg2 --list-keys 
/home/sgariepy/.gnupg/pubring.gpg
---------------------------------
pub   2048R/956F5465 2017-05-03 [expires: 2018-05-03]
uid                  Stéphane Gariépy <sgariepy@exmaple.com>
sub   2048R/DD21F2BB 2017-05-03 [expires: 2018-05-03]
$ git config --global user.signingkey 956F5465

Quand on crée un tag, utiliser le -s au lieu du -a:

$ git tag -s 1.0.0 -m "1.0.0"
$ git push origin 1.0.0

Source : Signing Your Work

Obtenir le SHA d'un commit avec un tag

$ git rev-list -n 1 <nom-du-tag>

Par exemple:

$ git rev-list -n 1 v1.0.52
c14400a7f3b633516b2d38c3550de93d4fad097a

Obtenir les tags précédents

Pour obtenir les 10 tags précédents, on peut faire:

$ git for-each-ref refs/tags --sort=-taggerdate --format='%(refname)' --count=10
refs/tags/v1.1.2
refs/tags/v1.1.1
refs/tags/v1.1.0
refs/tags/v1.0.3
refs/tags/v1.0.2
refs/tags/v1.0.1
refs/tags/v1.0.0
refs/tags/v0.9.10
refs/tags/v0.9.9
refs/tags/v0.9.8
refs/tags/v0.9.7

Avoir que les tags existants sur remote

Si quelqu'un supprime certains tags sur origin et que quelqu'un d'autre les a localement, il peut les repousser et les recréer sur origin. Il faut alors supprimer tous les tags localement et aller chercher ceux sur origin.

$ git tag -l | xargs git tag -d
$ git fetch --tags
gestion_configuration/git/tags.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1