Marquer les jalons importants

GitBeginner
Pratiquer maintenant

Introduction

Bienvenue, explorateur de Git ! Aujourd'hui, nous allons plonger dans l'une des fonctionnalités les plus utiles de Git pour marquer les moments clés de l'historique de votre projet : les Tags (ou étiquettes). Si vous avez déjà souhaité pouvoir identifier facilement et revenir à des jalons importants de votre projet, comme des versions de sortie, alors les tags Git sont exactement ce qu'il vous faut.

Dans Git, les tags agissent comme des points de repère sur la chronologie de votre projet. Ils vous permettent de marquer des points spécifiques de l'historique de votre dépôt comme étant importants. C'est particulièrement utile pour identifier les points de versionnement (v1.0, v2.0, etc.) ou tout autre jalon significatif de votre développement.

Dans cet atelier, nous aborderons les points suivants :

  1. Création de tags légers : Des marqueurs simples et rapides.
  2. Création de tags annotés : Des objets complets et plus détaillés dans la base de données Git.
  3. Liste des tags : Comment visualiser tous les tags de votre dépôt.
  4. Extraction (Checkout) de tags : Comment visualiser votre projet à un point tagué spécifique.
  5. Suppression de tags : Comment retirer les tags lorsqu'ils ne sont plus nécessaires.

À la fin de cet atelier, vous serez à l'aise pour créer, gérer et utiliser des tags dans vos projets Git. Cela vous donnera un outil puissant pour organiser l'historique de votre projet et référencer facilement les étapes importantes de votre processus de développement.

C'est parti pour notre voyage dans le monde des tags Git !

Configuration de votre espace de travail

Avant de commencer à taguer, configurons un espace de travail avec quelques commits à marquer. Nous allons créer un nouveau répertoire, initialiser un dépôt Git et ajouter quelques fichiers avec plusieurs commits pour simuler le développement d'un projet.

Ouvrez votre terminal et tapez ces commandes :

cd ~/project
mkdir git-tags-lab
cd git-tags-lab
git init

Maintenant, créons quelques fichiers et effectuons une série de commits. Vous pouvez copier et coller les commandes suivantes :

echo "## My Awesome Project" > README.md
git add README.md
git commit -m "Initial commit"

echo "function greet(name) { console.log('Hello, ' + name + '!'); }" > app.js
git add app.js
git commit -m "Add greeting function"

echo "const PI = 3.14159;" >> app.js
git add app.js
git commit -m "Add PI constant"

echo "function calculateArea(radius) { return PI * radius * radius; }" >> app.js
git add app.js
git commit -m "Add area calculation function"

Analysons ce que nous venons de faire :

  1. Nous avons créé un fichier README et effectué notre commit initial.
  2. Nous avons créé un fichier JavaScript avec une fonction de salutation et l'avons validé.
  3. Nous avons ajouté une constante PI au même fichier et l'avons validée.
  4. Enfin, nous avons ajouté une fonction de calcul d'aire et l'avons validée.

Nous avons maintenant un dépôt avec un historique prêt à être tagué !

Création de tags légers

Commençons par créer un tag léger. Les tags légers sont essentiellement de simples pointeurs vers un commit spécifique — voyez-les comme une branche qui ne change jamais de position. Ils sont simples à créer et à utiliser, ce qui les rend parfaits pour un usage temporaire ou personnel.

Pour créer un tag léger, utilisez la commande git tag suivie du nom du tag :

git tag v0.1

Cela crée un tag nommé v0.1 pointant vers le commit actuel (HEAD).

Vous pouvez également créer un tag léger pour un commit passé en spécifiant le hash du commit :

git log --oneline
8197680 (HEAD -> master, tag: v0.1) Add area calculation function
d93ae1c Add PI constant
7411f09 Add greeting function
35d7df5 Initial commit

Cela affichera la liste de vos commits. Copiez le hash du commit "Add greeting function", qui est 7411f09 dans cet exemple (utilisez votre propre hash réel).

Appuyez sur q pour quitter la vue du log, puis créez un tag pour ce commit :

git tag v0.0.1 <commit-hash>

Remplacez <commit-hash> par le hash réel que vous avez trouvé.

git tag
v0.0.1
v0.1

Les tags légers sont excellents pour les marqueurs temporaires. Cependant, ils ne stockent aucune information supplémentaire. Pour un marquage plus robuste, notamment pour les versions publiques, vous préférerez utiliser des tags annotés, que nous allons voir maintenant.

Création de tags annotés

Les tags annotés sont stockés en tant qu'objets complets dans la base de données Git. Ils contiennent le nom du créateur, son e-mail, la date et un message de marquage. Ils peuvent également être signés et vérifiés avec GPG. Cela les rend idéaux pour les versions publiques et pour tout tag auquel vous souhaitez ajouter des informations contextuelles.

Pour créer un tag annoté, utilisez l'option -a avec git tag :

git tag -a v1.0 -m "First major release"

Cela crée un tag annoté nommé v1.0 avec le message "First major release".

Vous pouvez consulter les détails d'un tag annoté en utilisant la commande git show :

git show v1.0

Cela affichera les informations sur l'auteur du tag, la date à laquelle le commit a été tagué, le message d'annotation et les informations du commit lui-même.

Les tags annotés sont recommandés pour les versions publiques car ils incluent beaucoup plus de métadonnées et peuvent être vérifiés. C'est une façon de dire : "ce point de l'historique est important, et voici pourquoi".

Liste des tags

À mesure que votre projet grandit, vous risquez d'accumuler de nombreux tags. Git propose des moyens simples pour lister et rechercher vos tags.

Pour lister tous les tags de votre dépôt :

git tag

Cela affichera tous vos tags par ordre alphabétique.

Si vous souhaitez rechercher des tags correspondant à un motif particulier, vous pouvez utiliser l'option -l (ou --list) avec un caractère générique (wildcard) :

git tag -l "v1.*"

Cela listera tous les tags commençant par "v1.".

Pour obtenir des informations plus détaillées, y compris les messages d'annotation pour les tags annotés, vous pouvez utiliser :

git tag -n

Cette commande liste vos tags accompagnés de la première ligne de leur message d'annotation (ou du message de commit pour les tags légers).

N'oubliez pas que les tags ne sont pas automatiquement envoyés vers les dépôts distants. Si vous voulez partager vos tags, vous devez les pousser explicitement, ce que nous aborderons dans un futur atelier.

Extraction (Checkout) de tags

L'une des fonctionnalités les plus utiles des tags est la possibilité de visualiser facilement votre projet dans l'état exact où il se trouvait lors d'un tag spécifique. C'est idéal pour reproduire des bugs d'une version précise ou pour examiner le code exact d'une version publiée.

Pour extraire un tag, vous pouvez utiliser la commande git checkout :

git checkout v1.0

Cela placera votre dépôt dans un état de "HEAD détachée" (detached HEAD) au commit pointé par v1.0. Cela signifie que vous pouvez explorer le code, effectuer des modifications expérimentales et les committer, puis abandonner ces commits sans impacter vos branches existantes.

Si vous souhaitez effectuer des modifications et créer une nouvelle branche pour conserver ces changements, utilisez :

git checkout -b branch-name v1.0

Cela crée une nouvelle branche nommée branch-name basée sur l'état de votre projet au moment du tag v1.0.

N'oubliez pas qu'une fois l'examen du code terminé, vous pouvez revenir à l'état le plus récent de votre branche principale avec :

git checkout master

Soyez prudent lorsque vous êtes en état de HEAD détachée. Tous les commits que vous ferez seront orphelins (ne seront sur aucune branche) dès que vous changerez de branche, à moins que vous ne créiez explicitement une nouvelle branche pour les conserver.

Suppression de tags

Parfois, vous pourriez avoir besoin de supprimer un tag. Peut-être a-t-il été créé par erreur ou n'est-il plus pertinent. Git facilite la suppression des tags.

Pour supprimer un tag sur votre dépôt local, utilisez :

git tag -d v0.0.1

Cela retire le tag v0.0.1 de votre dépôt local.

Soyez prudent lors de la suppression de tags. D'autres utilisateurs peuvent utiliser ces tags comme points de référence. Il est généralement de bon ton de communiquer avec votre équipe avant de supprimer des tags partagés.

Résumé

Félicitations ! Vous venez de maîtriser l'art d'utiliser les tags dans Git. Récapitulons les concepts clés que nous avons abordés :

  1. Création de tags légers : Des marqueurs rapides et faciles pour un usage temporaire ou personnel.
  2. Création de tags annotés : Des tags plus détaillés avec des métadonnées supplémentaires, parfaits pour marquer des jalons importants comme les versions.
  3. Liste des tags : Comment visualiser et rechercher parmi les tags de votre dépôt.
  4. Extraction de tags : Comment visualiser votre projet à l'état d'un tag spécifique.
  5. Suppression de tags : Comment retirer les tags devenus inutiles.

Les tags sont une fonctionnalité puissante de Git qui vous permet de baliser les points importants de l'historique de votre projet. Ils sont particulièrement précieux pour identifier les versions de sortie et autres étapes majeures.

Rappelez-vous :

  • Utilisez les tags légers pour des points de référence temporaires ou personnels.
  • Utilisez les tags annotés pour les versions publiques et lorsque vous souhaitez inclure des informations supplémentaires.
  • Soyez vigilant en état de HEAD détachée après avoir extrait un tag.
  • Faites attention lors de la suppression de tags, surtout s'ils ont été poussés sur un dépôt partagé.

Au fil de votre progression avec Git, vous découvrirez que les tags sont un outil indispensable pour gérer la chronologie de votre projet. Ils fournissent des points de repère clairs qui vous aideront, vous et votre équipe, à naviguer facilement dans l'historique de votre développement.

Bon marquage, et que vos jalons de projet soient toujours clairement identifiés !