Comment vérifier si une étiquette Git est annotée

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), vous apprendrez à déterminer si une étiquette (tag) Git est annotée ou légère. Nous allons explorer deux méthodes : utiliser la commande git show pour inspecter les détails de l'étiquette et la commande git cat-file pour examiner directement le type d'objet de l'étiquette. À la fin de ce laboratoire, vous comprendrez les caractéristiques de chaque type d'étiquette et comment les vérifier à l'aide de commandes Git de base.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/SetupandConfigGroup -.-> git/git("Show Version") git/BranchManagementGroup -.-> git/tag("Git Tags") subgraph Lab Skills git/git -.-> lab-560109{{"Comment vérifier si une étiquette Git est annotée"}} git/tag -.-> lab-560109{{"Comment vérifier si une étiquette Git est annotée"}} end

Exécuter git show pour vérifier le type d'étiquette (tag)

Dans cette étape, nous allons apprendre à utiliser la commande git show pour inspecter une étiquette (tag) et déterminer son type. Git prend en charge deux types principaux d'étiquettes : les étiquettes légères (lightweight) et les étiquettes annotées (annotated). Comprendre la différence est important pour gérer efficacement l'historique de votre projet.

Tout d'abord, assurons-nous que nous sommes dans le répertoire de notre projet. Ouvrez votre terminal et accédez au répertoire my-time-machine :

cd ~/project/my-time-machine

Maintenant, créons une étiquette annotée. Les étiquettes annotées sont stockées sous forme d'objets complets dans la base de données Git. Elles contiennent le nom de l'étiqueteur, l'e-mail, la date et un message d'étiquetage. Elles sont généralement recommandées pour les versions (releases).

git tag -a v1.0 -m "Release version 1.0"

Cette commande crée une étiquette annotée nommée v1.0 avec le message "Release version 1.0".

Ensuite, utilisons git show pour afficher les détails de cette étiquette :

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:00:00 2023 +0000

Release version 1.0

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

    Send a message to the future

Remarquez la ligne "tag v1.0" et les informations sur l'étiqueteur. Cela indique que v1.0 est une étiquette annotée. La sortie montre également le commit vers lequel l'étiquette pointe.

Comprendre la différence entre les types d'étiquettes est crucial. Les étiquettes annotées fournissent plus d'informations et sont cryptographiquement signées, ce qui les rend plus sûres pour marquer des points importants tels que les versions. Les étiquettes légères, que nous explorerons plus tard, ne sont simplement que des pointeurs vers un commit spécifique.

Utiliser git cat-file pour vérifier

Dans l'étape précédente, nous avons utilisé git show pour voir les détails de notre étiquette annotée (tag). Maintenant, utilisons une commande Git plus fondamentale, git cat-file, pour inspecter directement l'objet Git vers lequel l'étiquette v1.0 pointe. Cette commande est utile pour comprendre le fonctionnement interne de Git.

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

La commande git cat-file peut être utilisée avec différentes options pour afficher le type, la taille ou le contenu d'un objet Git. Pour voir le type d'objet vers lequel v1.0 fait référence, nous utilisons l'option -t :

git cat-file -t v1.0

Vous devriez voir la sortie suivante :

tag

Cette sortie confirme que v1.0 est effectivement un objet de type "tag", qui est le type utilisé pour les étiquettes annotées dans Git. Cela est différent d'un objet de type "commit", vers lequel pointerait directement une étiquette légère (lightweight tag).

Maintenant, voyons le contenu de l'objet étiquette en utilisant l'option -p (affichage formaté) :

git cat-file -p v1.0

Cela vous montrera le contenu brut de l'objet étiquette, qui inclut des informations sur le commit qu'il étiquette, l'étiqueteur et le message d'étiquetage :

object a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
type commit
tag v1.0
tagger Jane Doe <[email protected]> 1691398800 +0000

Release version 1.0

La ligne object montre le hachage du commit vers lequel l'étiquette pointe. La ligne type commit confirme que l'objet étiqueté est un commit. Le reste de la sortie montre les informations sur l'étiqueteur et le message d'étiquetage.

L'utilisation de git cat-file vous donne une meilleure compréhension de la manière dont Git stocke les informations. Alors que git show fournit un résumé convivial pour l'utilisateur, git cat-file vous permet d'examiner les objets Git bruts, ce qui peut être très utile pour le débogage ou une utilisation avancée de Git.

Tester les étiquettes légères (Lightweight Tags)

Dans les étapes précédentes, nous avons travaillé avec une étiquette annotée (annotated tag). Maintenant, explorons les étiquettes légères (lightweight tags). Une étiquette légère est essentiellement juste un pointeur vers un commit spécifique. C'est comme une branche (branch) qui ne bouge pas. Elles sont généralement utilisées pour des étiquettes temporaires ou privées.

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

Pour créer une étiquette légère, vous utilisez simplement la commande git tag sans les options -a ou -m :

git tag experimental

Cette commande crée une étiquette légère nommée experimental qui pointe vers le commit actuel (le même commit que v1.0 pointe).

Maintenant, utilisons git show pour voir les détails de cette étiquette légère :

git show experimental

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

Remarquez que la sortie de git show experimental est différente de celle de git show v1.0. Il n'y a pas de ligne "tag experimental", pas d'informations sur l'étiqueteur (Tagger) et pas de message d'étiquetage. git show affiche directement le commit vers lequel l'étiquette légère pointe.

Pour confirmer davantage que experimental est une étiquette légère, utilisons git cat-file -t :

git cat-file -t experimental

Cette fois, la sortie devrait être :

commit

Cela confirme que l'étiquette experimental fait directement référence à un objet de type "commit", contrairement à l'étiquette annotée v1.0 qui faisait référence à un objet de type "tag".

Les étiquettes légères sont utiles pour des marqueurs rapides et temporaires dans votre dépôt (repository). Par exemple, vous pourriez les utiliser pour marquer un commit spécifique que vous souhaitez facilement référencer plus tard, sans avoir besoin de créer une étiquette annotée complète avec un message.

Vous comprenez maintenant la différence entre les étiquettes annotées et les étiquettes légères et comment utiliser git show et git cat-file pour les inspecter.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si une étiquette Git (Git tag) est annotée. Nous avons commencé par utiliser la commande git show pour inspecter une étiquette annotée, en observant la ligne "tag" et les informations sur l'étiqueteur (Tagger) dans la sortie comme indicateurs d'une étiquette annotée. Cela a démontré comment git show offre un moyen convivial pour afficher les détails des étiquettes et distinguer les types d'étiquettes.

Nous avons ensuite exploré l'utilisation de la commande git cat - file pour examiner directement l'objet Git associé à une étiquette. Cela a fourni une compréhension plus approfondie de la structure interne de Git et de la manière dont les étiquettes annotées sont stockées en tant qu'objets distincts. En utilisant à la fois git show et git cat - file, nous avons acquis des compétences pratiques pour vérifier le type d'une étiquette Git et comprendre les différences fondamentales entre les étiquettes annotées et les étiquettes légères (lightweight tags).