Aller au contenu principal

Gestion des Tags Git


Table des matières


  1. Qu'est-ce qu'un tag ?
  2. Types de tags
  3. Créer des tags
  4. Gérer les tags
  5. Tags et GitHub
  6. Versionnement sémantique


1 - Qu'est-ce qu'un tag ?



Un tag est un pointeur permanent vers un commit spécifique.

Différence tag vs branche

AspectTagBranche
Mobile❌ Non✅ Oui
UsageMarquer une versionDéveloppement
Exemplev1.0.0, release-2024main, feature/x

Visualisation

      v1.0.0          v1.1.0         v2.0.0
↓ ↓ ↓
A───B───C───D───E───F───G───H───I───J───K main

Les tags restent fixés sur leurs commits, même quand la branche avance.

🔝 Retour à la table des matières



2 - Types de tags



Tags légers (lightweight)

Simple pointeur vers un commit.

git tag v1.0.0

Tags annotés (recommandé)

Contiennent des métadonnées : auteur, date, message.

git tag -a v1.0.0 -m "Version 1.0.0 - Release initiale"

Comparaison

AspectLégerAnnoté
Métadonnées
Message
Signable (GPG)
Usage recommandéTemporaireProduction

💡 Recommandation : Utilisez toujours des tags annotés pour les releases.

🔝 Retour à la table des matières



3 - Créer des tags



Tag annoté sur HEAD

git tag -a v1.0.0 -m "Release version 1.0.0"

Tag sur un commit spécifique

git tag -a v1.0.0 abc1234 -m "Release version 1.0.0"

Tag signé (GPG)

git tag -s v1.0.0 -m "Signed release"

Vérifier un tag signé

git tag -v v1.0.0

Voir les détails d'un tag

git show v1.0.0

🔝 Retour à la table des matières



4 - Gérer les tags



Lister les tags

# Tous les tags
git tag

# Avec un pattern
git tag -l "v1.*"

# Triés par version
git tag -l --sort=-version:refname

Supprimer un tag

# Localement
git tag -d v1.0.0

# Sur le remote
git push origin --delete v1.0.0
# ou
git push origin :refs/tags/v1.0.0

Renommer un tag

# Créer le nouveau
git tag new-tag old-tag

# Supprimer l'ancien
git tag -d old-tag
git push origin :refs/tags/old-tag

# Pousser le nouveau
git push origin new-tag

Checkout un tag

# Aller sur le tag (detached HEAD)
git checkout v1.0.0

# Créer une branche depuis un tag
git checkout -b hotfix/v1.0.1 v1.0.0

🔝 Retour à la table des matières



5 - Tags et GitHub



Pousser les tags

# Un tag spécifique
git push origin v1.0.0

# Tous les tags
git push origin --tags

# Seulement les tags annotés
git push origin --follow-tags

Récupérer les tags

git fetch --tags

GitHub Releases

Sur GitHub, les tags sont utilisés pour créer des Releases :

  1. Allez sur votre dépôt → Releases
  2. Cliquez Create a new release
  3. Sélectionnez un tag existant ou créez-en un nouveau
  4. Ajoutez des release notes
  5. Uploadez des binaires si nécessaire

Lien direct vers un tag

https://github.com/user/repo/releases/tag/v1.0.0

🔝 Retour à la table des matières



6 - Versionnement sémantique



Format SemVer

MAJOR.MINOR.PATCH
│ │ │
│ │ └── Bug fixes (rétrocompatible)
│ └──────── Nouvelles fonctionnalités (rétrocompatible)
└─────────────── Changements incompatibles

Exemples

VersionSignification
1.0.0Première release stable
1.1.0Nouvelle fonctionnalité
1.1.1Correction de bug
2.0.0Breaking changes

Pre-releases

1.0.0-alpha
1.0.0-beta.1
1.0.0-rc.1
1.0.0

Workflow de release

# 1. Mettre à jour le numéro de version dans package.json

# 2. Commiter
git commit -am "chore: bump version to 1.2.0"

# 3. Créer le tag
git tag -a v1.2.0 -m "Release version 1.2.0

Features:
- New login page
- Improved performance

Bug fixes:
- Fixed button click issue"

# 4. Pousser
git push origin main --follow-tags

Résumé des commandes

CommandeDescription
git tagLister les tags
git tag -a v1.0.0 -m "msg"Créer un tag annoté
git show v1.0.0Voir les détails
git tag -d v1.0.0Supprimer localement
git push origin v1.0.0Pousser un tag
git push origin --tagsPousser tous les tags
git checkout v1.0.0Aller sur un tag

🔝 Retour à la table des matières