Comment vérifier si une étiquette Git est légère (lightweight)

GitGitBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), nous allons explorer comment déterminer si une étiquette (tag) Git est légère (lightweight). Nous allons plonger dans le fonctionnement interne de Git en utilisant la commande git cat-file pour inspecter les types d'objets, en nous concentrant plus particulièrement sur la manière dont Git stocke les validations (commits) et les autres objets.

Ensuite, nous allons utiliser la commande git show pour examiner les informations détaillées associées aux étiquettes (tags) et aux validations (commits) Git. Enfin, nous allons tester et comprendre les caractéristiques des étiquettes annotées (annotated tags) dans Git.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BasicOperationsGroup -.-> git/diff("Compare Changes") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/tag("Git Tags") subgraph Lab Skills git/commit -.-> lab-560111{{"Comment vérifier si une étiquette Git est légère (lightweight)"}} git/diff -.-> lab-560111{{"Comment vérifier si une étiquette Git est légère (lightweight)"}} git/log -.-> lab-560111{{"Comment vérifier si une étiquette Git est légère (lightweight)"}} git/tag -.-> lab-560111{{"Comment vérifier si une étiquette Git est légère (lightweight)"}} end

Utiliser git cat-file pour vérifier le type

Dans cette étape, nous allons explorer la manière dont Git stocke les objets et comment les inspecter à l'aide de la commande git cat-file. Git ne se limite pas à la sauvegarde de fichiers ; il stocke l'historique de votre projet sous forme de série d'objets. Comprendre ces objets est essentiel pour véritablement maîtriser Git.

Tout d'abord, assurons-nous que nous sommes dans le répertoire my-time-machine. Ouvrez votre terminal et tapez :

cd ~/project/my-time-machine

Maintenant, utilisons git cat-file pour inspecter le type de notre première validation (commit). Vous vous souvenez du hachage (hash) de la validation de l'étape précédente ? Vous pouvez le retrouver en utilisant git log --oneline. C'est la courte chaîne de caractères au début de l'entrée du journal.

Par exemple, si la sortie de votre commande git log --oneline est a1b2c3d Envoyer un message au futur, le hachage de la validation est a1b2c3d.

Maintenant, utilisez git cat-file -t suivi du hachage de votre validation pour voir son type :

git cat-file -t <your_commit_hash>

Remplacez <your_commit_hash> par le véritable hachage de la sortie de votre commande git log --oneline.

Vous devriez voir la sortie suivante :

commit

Cela nous indique que l'objet pointé par le hachage de votre validation est un objet de type "commit". Git utilise différents types d'objets pour stocker différents types d'informations. Un objet de validation stocke les métadonnées d'une validation, telles que l'auteur, le validateur, la date et un pointeur vers l'objet d'arborescence (tree object) qui représente l'état du projet à cette validation.

Comprendre les objets Git vous permet de voir comment Git construit son historique. Chaque validation est un instantané, et git cat-file vous permet de jeter un coup d'œil à l'intérieur de ces instantanés et de voir comment Git organise les données de votre projet.

Exécuter git show pour obtenir les détails d'une étiquette (tag)

Dans l'étape précédente, nous avons utilisé git cat-file -t pour voir le type d'un objet Git. Maintenant, utilisons la commande git show pour voir les détails de notre première validation (commit). La commande git show est un outil polyvalent qui peut afficher des informations sur différents objets Git, notamment les validations, les étiquettes (tags) et les objets binaires (blobs).

Assurez-vous que vous êtes toujours dans le répertoire ~/project/my-time-machine :

cd ~/project/my-time-machine

Maintenant, utilisez git show suivi du hachage de votre validation pour voir les détails de votre première validation. Encore une fois, remplacez <your_commit_hash> par le véritable hachage de la sortie de votre commande git log --oneline.

git show <your_commit_hash>

Vous devriez voir une sortie similaire à celle-ci :

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

diff --git a/message.txt b/message.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/message.txt
@@ -0,0 +1 @@
+Hello, Future Me

Cette sortie fournit de nombreuses informations sur la validation :

  • Le hachage complet de la validation.
  • Les informations sur l'auteur et le validateur (que nous avons configurées lors de la mise en place).
  • La date et l'heure de la validation.
  • Le message de validation.
  • Un "diff" montrant les modifications introduites par cette validation. Dans ce cas, il montre qu'un nouveau fichier message.txt a été créé avec le contenu "Hello, Future Me".

La commande git show est incroyablement utile pour inspecter le contenu des validations et comprendre exactement quelles modifications ont été apportées à chaque étape de l'historique de votre projet. C'est comme ouvrir votre capsule temporelle et voir exactement ce qui y a été mis !

Appuyez sur q pour quitter la vue git show et revenir à la ligne de commande.

Tester les étiquettes annotées (annotated tags)

Dans Git, les étiquettes (tags) sont utilisées pour marquer des points spécifiques de l'historique comme importants. Il existe deux types principaux d'étiquettes : les étiquettes légères (lightweight tags) et les étiquettes annotées (annotated tags). Les étiquettes légères sont simplement des pointeurs vers une validation (commit) spécifique, tandis que les étiquettes annotées sont des objets Git complets qui contiennent des métadonnées telles que le nom de l'étiqueteur, l'e-mail, la date et un message d'étiquetage. Les étiquettes annotées sont généralement recommandées pour les versions (releases) car elles fournissent plus d'informations.

Dans cette étape, nous allons créer une étiquette annotée puis l'inspecter.

Assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine :

cd ~/project/my-time-machine

Maintenant, créons une étiquette annotée pour notre première validation. Nous l'appellerons v1.0. Utilisez le drapeau -a pour créer une étiquette annotée et le drapeau -m pour fournir un message :

git tag -a v1.0 -m "Initial version of the time machine message"

Vous ne devriez voir aucune sortie si la commande a réussi.

Pour voir les étiquettes dans votre dépôt, utilisez la commande git tag :

git tag

Vous devriez voir :

v1.0

Maintenant, utilisons git cat-file pour voir le type de notre nouvelle étiquette :

git cat-file -t v1.0

Vous devriez voir :

tag

Cela confirme que v1.0 est un objet de type "tag", ce qui signifie qu'il s'agit d'une étiquette annotée.

Enfin, utilisons git show pour voir les détails de l'étiquette annotée :

git show v1.0

Vous devriez voir une sortie similaire à celle-ci :

tag v1.0
Tagger: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:05:00 2023 +0000

Initial version of the time machine message

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

diff --git a/message.txt b/message.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/message.txt
@@ -0,0 +1 @@
+Hello, Future Me

Notez que la sortie pour une étiquette annotée inclut des informations sur l'étiquette elle-même (étiqueteur, date, message) en plus des détails de la validation vers laquelle elle pointe. C'est cette information supplémentaire qui fait que les étiquettes annotées sont préférées pour marquer les versions importantes.

Vous avez maintenant créé et inspecté avec succès une étiquette annotée ! C'est une compétence précieuse pour marquer les étapes importantes de vos projets.

Résumé

Dans ce laboratoire (lab), nous avons appris à inspecter les objets Git et à comprendre leur type en utilisant la commande git cat-file. Plus précisément, nous avons utilisé git cat-file -t pour déterminer qu'un hachage de validation (commit hash) pointe vers un objet de type "commit", qui stocke des métadonnées et un pointeur vers l'état du projet. Cette étape a fourni des connaissances de base sur la façon dont Git structure son historique grâce à différents types d'objets.

En nous appuyant sur l'inspection des objets, nous avons ensuite exploré la commande git show. Bien que les détails complets n'aient pas été fournis, l'introduction indique que git show est utilisé pour afficher des informations détaillées sur différents objets Git, notamment les validations (commits) et les étiquettes (tags), nous permettant de plonger plus profondément dans le contenu et les métadonnées de ces objets. La dernière étape, "Test Annotated Tags", suggère que nous appliquerions ces techniques d'inspection pour comprendre les caractéristiques des étiquettes annotées (annotated tags), probablement en les différenciant des étiquettes légères (lightweight tags).