Tags
Les tags marquent un commit d’un nom permanent, généralement une version (v1.0.0). Cette page présente la création, la suppression, le push, le fetch et le checkout des tags. Pour savoir ce que sont les tags, voir Git Basics - Tagging.
Les tags apparaissent sous forme d’étiquettes sur leur commit dans le graphe des commits et dans la section Tags de la barre latérale, repliée par défaut. Une icône d’information signale les tags annotés.
Créer un tag
Section intitulée « Créer un tag »Ouvrez la boîte de dialogue Créer un tag depuis :
| Point d’entrée | Cible du tag |
|---|---|
| Le bouton Tag de la barre d’outils, ou l’action de palette Créer un tag… | Le commit sur lequel HEAD pointe à l’ouverture de la boîte de dialogue |
| Créer un tag ici… dans le menu d’un commit du graphe | Ce commit |
| Créer un tag ici… dans le menu de la barre latérale d’une branche locale ou d’un HEAD détaché | Sa pointe |
Dans un dépôt sans aucun commit, le bouton de la barre d’outils est grisé : « Rien à taguer : le dépôt n’a pas encore de commit ». Il n’y a pas de raccourci par défaut.
- Vérifiez Sur le commit : le commit cible.
- Saisissez le Nom du tag (par exemple
v1.0.0). yaggui le vérifie pendant la saisie : « Ce nom est disponible. », « Un tag « nom » existe déjà. » ou « « nom » n’est pas un nom de tag valide : … ». - Facultatif : saisissez un Message (facultatif).
- Sans message, le tag est léger : juste un nom sur le commit.
- Avec un message, le tag est annoté : il garde son auteur et sa date.
- Facultatif, avec un message uniquement : cochez Signer le tag (GPG). Git utilise votre configuration de signature (
gpg.format,user.signingKey). - Cliquez sur Créer le tag.
| Tag | Commande |
|---|---|
| Léger | git tag -- <name> <sha> |
| Annoté | git tag -a -F - -- <name> <sha> (message transmis sur l’entrée standard) |
| Signé | git tag -s -F - -- <name> <sha> |
La notification indique « Tag nom créé ». Si la signature échoue (pas de clé, mauvaise phrase de passe, gpg absent), une erreur l’explique, avec un lien vers le journal des commandes.
Le tag reste local tant que vous ne le poussez pas. Annuler le supprime.
Supprimer un tag
Section intitulée « Supprimer un tag »En local
Section intitulée « En local »- Développez Tags dans la barre latérale, faites un clic droit sur le tag, puis Supprimer le tag….
- La boîte de dialogue Supprimer le tag nom ? explique que seul le tag local est supprimé (un tag poussé reste sur le remote) et affiche
git tag -d <name>. - Cliquez sur Supprimer le tag.
La notification indique « Tag nom supprimé. Il pointait sur abc1234. » Annuler le recrée, annotation comprise.
Vous pouvez désactiver cette confirmation dans Préférences › Comportement › Confirmations (Supprimer un tag).
Sur un remote
Section intitulée « Sur un remote »- Faites un clic droit sur le tag dans la barre latérale, puis Supprimer sur le remote…. Avec plusieurs remotes, choisissez-en un dans le sous-menu Supprimer sur un remote. Avec un seul remote, il est utilisé. Sans remote, vous voyez « Ce dépôt n’a aucun remote. »
- La boîte de dialogue Supprimer le tag nom sur origin ? prévient que le tag est supprimé sur le remote pour tout le monde et que le tag local ne bouge pas. Elle affiche
git push origin --delete refs/tags/<name>. Cette confirmation ne peut pas être désactivée. - Cliquez sur Supprimer sur le remote.
La notification indique « Tag nom supprimé sur origin ». Un tag déjà absent du remote compte comme supprimé. Cette opération ne peut pas être annulée dans yaggui.
Pousser les tags
Section intitulée « Pousser les tags »git push n’envoie pas les tags par défaut (Sharing tags). yaggui les pousse explicitement.
| Push | Où | Commande |
|---|---|---|
| Un seul tag | Clic droit sur le tag, puis Pousser le tag (ou Pousser le tag vers ▸ remote quand vous en avez plusieurs) | git push --progress --porcelain <remote> refs/tags/<tag>:refs/tags/<tag> |
| Tous les tags | Clic droit sur l’en-tête de la section Tags, puis Pousser tous les tags (ou Pousser tous les tags vers ▸ remote) ; clic droit sur un dossier de remote, puis Y pousser tous les tags ; ou l’action de palette Pousser tous les tags | git push --progress --porcelain <remote> refs/tags/*:refs/tags/* |
Quand aucun remote n’est choisi, yaggui utilise origin, ou le premier remote s’il n’y a pas d’origin.
Résultats possibles :
- « Tag nom poussé vers origin », ou « Le tag nom est déjà sur origin ».
- « N tags poussés vers origin » avec la liste, « Tous les tags sont déjà sur origin », ou « Aucun tag à pousser ».
- Si le remote a déjà un tag du même nom sur un autre commit : « Le remote a refusé le tag nom : un tag de ce nom y existe déjà et pointe vers un autre commit. Supprime d’abord le tag distant, ou renomme le tien. » Quand vous poussez tous les tags, les autres tags sont tout de même poussés.
- Si une règle du serveur ou un hook refuse le tag : « Le remote a refusé le tag nom (règle du serveur ou hook). Le journal des commandes montre sa réponse. »
Pousser tous les tags ne supprime pas les tags du remote que vous n’avez pas en local. La progression s’affiche dans la barre d’état, où vous pouvez l’annuler. Un push ne peut pas être annulé dans yaggui. Pour les problèmes d’authentification, voir Authentification.
Récupérer les tags
Section intitulée « Récupérer les tags »Un fetch normal ramène déjà les tags des branches qu’il récupère. Pour récupérer tous les tags :
| Où | Commande |
|---|---|
| L’action de palette Récupérer les tags, ou Récupérer les tags de tous les remotes dans le menu contextuel de l’en-tête de la section Tags ou Remote | git fetch --progress --tags --all |
| Récupérer ses tags dans le menu contextuel d’un dossier de remote | git fetch --progress --tags <remote> |
La notification indique « Tags récupérés ». Récupérer les tags ne supprime jamais de tags locaux. Cette opération n’est pas enregistrée pour l’annulation. Voir Fetch, pull et push.
Basculer sur un tag
Section intitulée « Basculer sur un tag »Basculer sur un tag détache HEAD (HEAD détaché). yaggui commence par vous l’expliquer.
Double-cliquez sur un tag dans la barre latérale, ou faites un clic droit dessus, puis Checkout du tag…. Un double-clic sur l’étiquette d’un tag dans le graphe ne fait rien.
La boîte de dialogue Checkout du tag nom prévient que les commits faits en HEAD détaché n’appartiennent à aucune branche et se perdent facilement. Elle propose :
| Bouton | Ce qu’il fait |
|---|---|
| Créer et faire le checkout (par défaut) | Crée une branche sur le tag, nommée dans Nom de la branche (par défaut <tag>-branch, vérifiée pendant la saisie), puis bascule dessus : git branch -- <name> refs/tags/<tag>, puis git switch --no-guess <name> |
| Continuer en HEAD détaché | git switch --detach <commit>, pour regarder le code uniquement. Vous pourrez créer une branche plus tard depuis la ligne HEAD de la barre latérale. |
| Annuler | Rien |
Si vous avez des modifications locales, la boîte de dialogue des modifications locales apparaît avant le changement de branche. Avec Créer et faire le checkout, la branche est créée même si vous annulez ensuite le changement de branche.
Annulation
Section intitulée « Annulation »| Opération | Annulation |
|---|---|
| Créer un tag | Oui |
| Supprimer un tag local | Oui, le tag revient tel qu’il était |
| Basculer sur un tag | Oui. Avec Créer et faire le checkout, la création de la branche et le checkout sont deux étapes d’annulation distinctes. |
| Pousser un tag, pousser tous les tags, supprimer un tag sur un remote | Non : le remote a changé |
| Récupérer les tags | Non (non enregistré) |
Voir Annuler et rétablir. Chaque commande apparaît dans le journal des commandes.