Comment vérifier si une branche Git contient des commits spécifiques

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 apprendrons à vérifier si une branche Git contient des commits spécifiques. Nous commencerons par explorer la commande git log et ses options de filtrage pour rechercher des commits en fonction du contenu du message ou de l'auteur. Ensuite, nous utiliserons la commande git branch --contains pour déterminer efficacement quelles branches incluent un commit particulier. Enfin, nous vérifierons nos résultats en vérifiant directement la présence d'un commit à l'aide de son hash.


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/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560039{{"Comment vérifier si une branche Git contient des commits spécifiques"}} git/commit -.-> lab-560039{{"Comment vérifier si une branche Git contient des commits spécifiques"}} git/branch -.-> lab-560039{{"Comment vérifier si une branche Git contient des commits spécifiques"}} git/log -.-> lab-560039{{"Comment vérifier si une branche Git contient des commits spécifiques"}} end

Exécuter git log pour rechercher des commits

Dans cette étape, nous allons explorer comment utiliser la commande git log pour rechercher des commits spécifiques dans l'historique de votre projet. Au fur et à mesure que votre projet grandit et que vous effectuez plus de commits, la sortie de la commande git log peut devenir très longue. Git propose des options puissantes pour filtrer et rechercher dans cet historique.

Tout d'abord, assurons-nous que nous sommes dans le répertoire de notre projet :

cd ~/project/my-time-machine

Maintenant, ajoutons quelques commits supplémentaires afin d'avoir un historique à explorer. Nous allons créer un nouveau fichier et apporter une modification à un fichier existant.

Créons un nouveau fichier :

echo "This is my second file." > second_file.txt

Ajoutons et validons (commit) le nouveau fichier :

git add second_file.txt
git commit -m "Add a second file"

Vous devriez voir une sortie similaire à celle-ci :

[master a1b2c3d] Add a second file
 1 file changed, 1 insertion(+)
 create mode 100644 second_file.txt

Maintenant, modifions le fichier message.txt :

echo "Adding another line." >> message.txt

Ajoutons et validons (commit) la modification :

git add message.txt
git commit -m "Update message.txt"

Vous devriez voir une sortie similaire à celle-ci :

[master e4f5g6h] Update message.txt
 1 file changed, 1 insertion(+)

Maintenant que nous avons plusieurs commits, utilisons git log pour afficher l'historique :

git log

Vous verrez les trois commits répertoriés. Appuyez sur q pour quitter la vue de l'historique.

Pour rechercher des commits dont le message contient un mot spécifique, nous pouvons utiliser l'option --grep. Recherchons les commits contenant le mot "message" :

git log --grep "message"

Cette commande n'affichera que les commits dont le message contient le mot "message". Vous devriez voir le premier et le troisième commit.

Vous pouvez également rechercher des commits par auteur en utilisant l'option --author. Recherchons les commits effectués par "Jane Doe" (le nom que nous avons configuré lors de la mise en place) :

git log --author "Jane Doe"

Cela affichera tous les commits effectués par l'auteur "Jane Doe". Dans ce cas, cela devrait afficher les trois commits.

L'utilisation de git log avec des options telles que --grep et --author est essentielle pour naviguer dans des projets plus importants et trouver des modifications ou des contributions spécifiques. C'est comme avoir un moteur de recherche puissant pour l'historique de votre projet !

Utiliser git branch --contains pour vérifier la présence d'un commit

Dans cette étape, nous apprendrons à utiliser la commande git branch --contains pour déterminer quelles branches contiennent un commit spécifique. Cela est utile lorsque vous avez plusieurs branches et que vous souhaitez savoir où une modification particulière se trouve.

Tout d'abord, assurez-vous que vous êtes dans le répertoire de votre projet :

cd ~/project/my-time-machine

Créons une nouvelle branche pour démontrer cette commande. Nous l'appellerons feature-branch :

git branch feature-branch

Cette commande crée une nouvelle branche, mais ne bascule pas sur elle. Vous pouvez voir vos branches en utilisant git branch :

git branch

Vous devriez voir quelque chose comme ceci, avec master en surbrillance (indiquant qu'il s'agit de la branche actuelle) :

* master
  feature-branch

Maintenant, récupérons le hash de notre premier commit. Nous pouvons utiliser git log --oneline pour voir un historique condensé avec les hashes des commits :

git log --oneline

Vous verrez une sortie similaire à celle-ci (vos hashes seront différents) :

e4f5g6h (HEAD -> master) Update message.txt
a1b2c3d Add a second file
abcdef0 Send a message to the future

Copiez le hash du premier commit ("Send a message to the future"). Dans l'exemple ci-dessus, c'est abcdef0.

Maintenant, utilisons git branch --contains avec le hash du premier commit :

git branch --contains abcdef0

Remplacez abcdef0 par le véritable hash de votre premier commit.

La sortie devrait afficher à la fois master et feature-branch :

* master
  feature-branch

Cela nous indique que le commit "Send a message to the future" existe à la fois sur les branches master et feature-branch. Cela est logique car nous avons créé feature-branch alors que nous étions sur la branche master, et le premier commit faisait déjà partie de master.

Maintenant, récupérons le hash du dernier commit ("Update message.txt"). Dans l'exemple ci-dessus, c'est e4f5g6h.

Utilisons git branch --contains avec le hash du dernier commit :

git branch --contains e4f5g6h

Remplacez e4f5g6h par le véritable hash de votre dernier commit.

La sortie devrait seulement afficher master :

* master

C'est parce que le dernier commit a été effectué sur la branche master après avoir créé feature-branch. Par conséquent, feature-branch ne contient pas ce commit.

La commande git branch --contains est un outil puissant pour comprendre la relation entre les commits et les branches, vous aidant à suivre où les modifications spécifiques ont été intégrées.

Vérifier avec le hash du commit

Dans cette étape, nous allons pratiquer l'utilisation des hashes de commits pour faire référence à des points spécifiques dans l'historique de notre projet. Chaque commit dans Git a un hash unique, qui agit comme sa signature. Vous pouvez utiliser ce hash pour afficher les détails d'un commit spécifique ou même revenir à ce point dans le temps.

Tout d'abord, assurez-vous que vous êtes dans le répertoire de votre projet :

cd ~/project/my-time-machine

Affichons à nouveau le journal des commits pour obtenir les hashes :

git log --oneline

Vous verrez une sortie similaire à celle-ci (vos hashes seront différents) :

e4f5g6h (HEAD -> master) Update message.txt
a1b2c3d Add a second file
abcdef0 Send a message to the future

Maintenant, affichons les détails du premier commit en utilisant son hash. Copiez le hash du premier commit ("Send a message to the future"). Dans l'exemple ci-dessus, c'est abcdef0.

Utilisez la commande git show suivie du hash du commit :

git show abcdef0

Remplacez abcdef0 par le véritable hash de votre premier commit.

Cette commande affichera des informations détaillées sur ce commit spécifique, y compris l'auteur, la date, le message de commit et les modifications introduites dans ce commit. Vous verrez que le fichier message.txt a été créé dans ce commit.

Appuyez sur q pour quitter la vue de git show.

Maintenant, affichons les détails du deuxième commit ("Add a second file"). Copiez son hash à partir de la sortie de git log --oneline. Dans l'exemple ci-dessus, c'est a1b2c3d.

Utilisez git show avec le hash du deuxième commit :

git show a1b2c3d

Remplacez a1b2c3d par le véritable hash de votre deuxième commit.

Cela affichera les détails du deuxième commit, où le fichier second_file.txt a été créé.

Enfin, affichons les détails du dernier commit ("Update message.txt"). Copiez son hash. Dans l'exemple ci-dessus, c'est e4f5g6h.

Utilisez git show avec le hash du dernier commit :

git show e4f5g6h

Remplacez e4f5g6h par le véritable hash de votre dernier commit.

Cela affichera les détails du dernier commit, où une ligne a été ajoutée au fichier message.txt.

L'utilisation de git show avec les hashes de commits vous permet d'inspecter le contenu et les modifications de n'importe quel commit spécifique dans l'historique de votre projet. Cela est incroyablement utile pour le débogage, la compréhension de la mise en œuvre d'une fonctionnalité ou simplement pour revoir le travail passé.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si une branche Git contient des commits spécifiques. Nous avons commencé par explorer la commande git log et ses options de filtrage, telles que --grep pour rechercher dans les messages de commit et --author pour rechercher par auteur, afin de localiser des commits dans l'historique du projet.

Ensuite, nous allons apprendre à utiliser la commande git branch --contains pour vérifier directement si une branche inclut un commit particulier, et enfin, nous allons le vérifier en utilisant le hash du commit.