Comment vérifier si une étiquette Git est associée à une branche

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 à vérifier si une étiquette Git (Git tag) est associée à une branche spécifique. Nous allons explorer la commande git branch --contains pour identifier les branches qui incluent le commit pointé par une étiquette.

Vous utiliserez également git log pour vérifier visuellement la présence du commit étiqueté dans l'historique d'une branche et tester le comportement de git branch --contains avec des branches qui ne contiennent pas le commit étiqueté.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/tag("Git Tags") subgraph Lab Skills git/add -.-> lab-560110{{"Comment vérifier si une étiquette Git est associée à une branche"}} git/commit -.-> lab-560110{{"Comment vérifier si une étiquette Git est associée à une branche"}} git/branch -.-> lab-560110{{"Comment vérifier si une étiquette Git est associée à une branche"}} git/checkout -.-> lab-560110{{"Comment vérifier si une étiquette Git est associée à une branche"}} git/log -.-> lab-560110{{"Comment vérifier si une étiquette Git est associée à une branche"}} git/tag -.-> lab-560110{{"Comment vérifier si une étiquette Git est associée à une branche"}} end

Exécuter git branch --contains Tag

Dans cette étape, nous allons explorer comment utiliser la commande git branch --contains avec une étiquette (tag). Cette commande est utile pour découvrir quelles branches contiennent un commit spécifique. Étant donné que les étiquettes pointent vers des commits spécifiques, nous pouvons l'utiliser pour voir quelles branches incluent le commit vers lequel une étiquette pointe.

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 si vous n'y êtes pas déjà :

cd ~/project/my-time-machine

Maintenant, créons un nouveau fichier et effectuons un commit. Cela nous donnera un nouveau commit à étiqueter.

echo "Another message for the future" > message2.txt
git add message2.txt
git commit -m "Add another message"

Vous devriez voir une sortie similaire à ceci après le commit :

[master a1b2c3d] Add another message
 1 file changed, 1 insertion(+)
 create mode 100644 message2.txt

Maintenant, créons une étiquette pour ce commit. Nous l'appellerons v1.0.

git tag v1.0

Cette commande crée une étiquette légère (lightweight tag) nommée v1.0 pointant vers le commit actuel.

Pour voir quelles branches contiennent le commit pointé par l'étiquette v1.0, nous utilisons git branch --contains :

git branch --contains v1.0

Étant donné que nous n'avons que la branche master et que nous avons créé l'étiquette sur le dernier commit de master, la sortie devrait afficher master :

* master

L'astérisque (*) indique la branche actuellement sélectionnée (checked out).

Cette commande est puissante car elle vous permet d'identifier rapidement quelles branches ont intégré une étape clé ou une version spécifique, représentée par une étiquette.

Utiliser git log pour vérifier la branche

Dans cette étape, nous allons utiliser la commande git log pour vérifier visuellement que le commit pointé par notre étiquette (tag) v1.0 est bien présent dans l'historique de la branche master. Alors que git branch --contains nous indique quelles branches contiennent un commit, git log nous permet de voir l'historique des commits en détail.

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

Maintenant, visualisons l'historique des commits de la branche master en utilisant git log. Nous pouvons utiliser l'option --decorate pour afficher les étiquettes et les pointeurs de branche.

git log --decorate --oneline

L'option --oneline fournit une vue concise, affichant chaque commit sur une seule ligne. L'option --decorate affiche les références (comme les noms de branches et les étiquettes) qui pointent vers chaque commit.

Vous devriez voir une sortie similaire à ceci :

a1b2c3d (HEAD -> master, tag: v1.0) Add another message
e4f5g6h Send a message to the future

Dans cette sortie, vous pouvez voir le hachage du commit (a1b2c3d dans cet exemple), suivi du message de commit. De manière cruciale, à côté du dernier commit, vous devriez voir (HEAD -> master, tag: v1.0). Cela confirme que le dernier commit de la branche master est le même commit que celui vers lequel pointe l'étiquette v1.0.

Cette confirmation visuelle à l'aide de git log complète les informations fournies par git branch --contains. Elle vous aide à comprendre la relation entre les branches, les étiquettes et les commits dans l'historique de votre projet.

N'oubliez pas que git log est un outil puissant pour explorer la chronologie de votre projet. Vous pouvez utiliser diverses options pour personnaliser la sortie et trouver les informations dont vous avez besoin. Appuyez sur q pour quitter la vue du journal si celui - ci s'affiche dans un visualiseur (pager).

Tester des branches non liées

Dans cette étape, nous allons créer une nouvelle branche et effectuer un commit sur celle - ci qui n'est pas basé sur le commit pointé par notre étiquette (tag) v1.0. Cela nous aidera à comprendre comment git branch --contains se comporte avec des branches qui ne contiennent pas le commit spécifié.

Tout d'abord, créons une nouvelle branche appelée feature - branch.

git branch feature-branch

Maintenant, changeons de branche pour cette nouvelle branche.

git checkout feature-branch

Vous devriez voir une sortie indiquant que vous avez changé de branche :

Switched to branch 'feature-branch'

Ensuite, effectuons un nouveau commit sur cette branche feature - branch. Nous allons créer un nouveau fichier.

echo "This is a new feature" > feature.txt
git add feature.txt
git commit -m "Add new feature file"

Vous devriez voir une sortie similaire à ceci après le commit :

[feature-branch a1b2c3d] Add new feature file
 1 file changed, 1 insertion(+)
 create mode 100644 feature.txt

Maintenant, utilisons de nouveau git branch --contains v1.0. Rappelez - vous, v1.0 pointe vers un commit sur la branche master, et notre nouveau commit sur feature - branch est différent.

git branch --contains v1.0

Cette fois, la sortie devrait seulement afficher la branche master :

master

La branche feature - branch n'est pas listée car elle ne contient pas le commit spécifique vers lequel pointe l'étiquette v1.0. Cela démontre comment git branch --contains identifie précisément quelles branches ont un commit particulier dans leur historique.

Cela est utile lorsque vous voulez savoir si une correction de bogue (étiquetée avec une version) a été incluse dans une branche de version (release branch), ou si une fonctionnalité spécifique (également potentiellement étiquetée) a été fusionnée dans différentes lignes de développement.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si une étiquette (tag) Git est associée à une branche. Nous avons commencé par utiliser la commande git branch --contains <tag>, qui identifie efficacement les branches qui incluent le commit pointé par l'étiquette spécifiée. Nous avons démontré ceci en créant un nouveau commit, en le taguant, puis en vérifiant que la branche master, où l'étiquette a été créée, était listée par la commande.

Nous avons ensuite utilisé la commande git log pour confirmer visuellement que le commit associé à l'étiquette était présent dans l'historique de la branche, fournissant une vue détaillée de la lignée des commits. Enfin, nous avons exploré le comportement de la commande git branch --contains avec des branches qui ne contiennent pas le commit tagué, renforçant ainsi son utilité pour déterminer rapidement si une branche inclut des étapes clés (milestones) taguées spécifiques.