Comment vérifier si une branche Git a été fusionné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 à vérifier efficacement si une branche Git a été fusionnée dans une autre branche. Nous explorerons la méthode principale en utilisant la commande git branch --merged, en démontrant son utilisation et en interprétant ses résultats.

En outre, nous vérifierons le statut de la fusion en examinant le journal Git (Git log) pour la présence de commits de fusion (merge commits) et testerons le comportement des commandes avec des branches non fusionnées pour consolider votre compréhension. Cette approche pratique vous dotera des compétences nécessaires pour gérer avec confiance vos branches Git et maintenir un dépôt propre.


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/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/merge("Merge Histories") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560046{{"Comment vérifier si une branche Git a été fusionnée"}} git/status -.-> lab-560046{{"Comment vérifier si une branche Git a été fusionnée"}} git/commit -.-> lab-560046{{"Comment vérifier si une branche Git a été fusionnée"}} git/branch -.-> lab-560046{{"Comment vérifier si une branche Git a été fusionnée"}} git/checkout -.-> lab-560046{{"Comment vérifier si une branche Git a été fusionnée"}} git/merge -.-> lab-560046{{"Comment vérifier si une branche Git a été fusionnée"}} git/log -.-> lab-560046{{"Comment vérifier si une branche Git a été fusionnée"}} end

Utiliser git branch --merged pour vérifier

Dans cette étape, nous apprendrons à utiliser la commande git branch --merged pour voir quelles branches ont été entièrement intégrées dans la branche actuelle. Cette commande est très utile pour nettoyer votre dépôt et comprendre l'état 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 nouvelle branche et effectuons un commit sur celle-ci. Cela simulera un flux de travail courant où vous travaillez sur une fonctionnalité dans une branche séparée.

git branch feature/add-greeting
git checkout feature/add-greeting
echo "Greetings from the feature branch!" >> greeting.txt
git add greeting.txt
git commit -m "Add greeting file"

Vous devriez voir un résultat similaire à ceci après le commit :

[feature/add-greeting a1b2c3d] Add greeting file
 1 file changed, 1 insertion(+)
 create mode 100644 greeting.txt

Maintenant, revenons à la branche master :

git checkout master

Vous devriez voir un résultat indiquant que vous avez changé de branche :

Switched to branch 'master'

Maintenant, fusionnons la branche feature/add-greeting dans master :

git merge feature/add-greeting

Vous devriez voir un résultat indiquant que la fusion a réussi :

Updating a1b2c3d..e4f5g6h
Fast-forward
 greeting.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 greeting.txt

Maintenant que nous avons fusionné la branche feature/add-greeting dans master, utilisons git branch --merged pour voir quelles branches sont maintenant fusionnées dans la branche actuelle (master).

git branch --merged

Vous devriez voir un résultat similaire à ceci :

* master
  feature/add-greeting

Le symbole * indique la branche actuelle (master). Le résultat montre que tant master que feature/add-greeting sont listées. Cela signifie que tous les commits de feature/add-greeting sont maintenant présents dans la branche master.

Comprendre quelles branches sont fusionnées est important car cela vous aide à identifier les branches qui ne sont plus nécessaires et peuvent être supprimées en toute sécurité. Cela garde votre dépôt propre et organisé.

Vérifier avec git log pour le commit de fusion

Dans l'étape précédente, nous avons fusionné la branche feature/add-greeting dans master. Maintenant, utilisons la commande git log pour voir l'historique des commits et confirmer que le commit de fusion (merge commit) est présent.

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

Exécutez la commande git log :

git log

Vous devriez voir une liste de commits, le plus récent en haut. Recherchez un message de commit indiquant une fusion. Il ressemblera probablement à ceci :

commit e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9u0v1w2x (HEAD -> master)
Merge: a1b2c3d f0e1d2c
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:05:00 2023 +0000

    Merge branch 'feature/add-greeting'

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (feature/add-greeting)
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:03:00 2023 +0000

    Add greeting file

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

    Send a message to the future

Remarquez le commit avec le message "Merge branch 'feature/add-greeting'". C'est le commit de fusion que Git a automatiquement créé lorsque nous avons fusionné la branche feature/add-greeting dans master. Ce commit a deux commits parents, indiqués par la ligne "Merge:". L'un des parents est le dernier commit de la branche master avant la fusion, et l'autre est le dernier commit de la branche feature/add-greeting.

La commande git log est essentielle pour comprendre l'historique de votre projet. Elle vous permet de voir tous les commits, qui les a effectués, quand ils ont été effectués et quelles modifications ont été incluses dans chaque commit. Cela est incroyablement précieux pour le débogage, le suivi de l'avancement et la collaboration avec d'autres personnes.

Appuyez sur q pour quitter la vue du journal.

Tester avec des branches non fusionnées

Dans les étapes précédentes, nous avons vu comment git branch --merged affiche les branches qui ont été entièrement intégrées. Maintenant, voyons ce qui se passe lorsqu'une branche n'a pas été fusionnée dans la branche actuelle.

Assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine et sur la branche master. Vous pouvez vérifier cela avec git status.

Créons une nouvelle branche appelée feature/add-farewell et basculons sur celle-ci :

git branch feature/add-farewell
git checkout feature/add-farewell

Vous devriez voir un message indiquant que vous avez basculé de branche :

Switched to branch 'feature/add-farewell'

Maintenant, créons un nouveau fichier et effectuons un commit sur cette branche :

echo "Farewell from the farewell branch!" > farewell.txt
git add farewell.txt
git commit -m "Add farewell file"

Vous devriez voir un résultat similaire à ceci après le commit :

[feature/add-farewell a1b2c3d] Add farewell file
 1 file changed, 1 insertion(+)
 create mode 100644 farewell.txt

Maintenant, revenons à la branche master :

git checkout master

Vous devriez voir un message indiquant que vous avez basculé de branche :

Switched to branch 'master'

Nous sommes maintenant sur la branche master, et la branche feature/add-farewell contient un commit qui n'est pas présent dans master.

Utilisons de nouveau git branch --merged :

git branch --merged

Vous devriez voir un résultat similaire à ceci :

* master
  feature/add-greeting

Remarquez que feature/add-farewell n'est pas listée dans le résultat. C'est parce que le commit que nous avons effectué sur feature/add-farewell n'a pas été fusionné dans la branche master.

Maintenant, utilisons la commande git branch --no-merged. Cette commande affiche les branches qui n'ont pas été fusionnées dans la branche actuelle.

git branch --no-merged

Vous devriez voir un résultat similaire à ceci :

  feature/add-farewell

Ce résultat affiche correctement feature/add-farewell car elle contient des commits qui ne sont pas dans la branche master.

Les commandes git branch --merged et git branch --no-merged sont des outils puissants pour gérer vos branches. Elles vous aident à suivre quelles branches sont terminées et peuvent être supprimées, et quelles branches sont encore en développement et doivent être fusionnées.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si une branche Git a été fusionnée dans la branche actuelle. Nous avons commencé par utiliser la commande git branch --merged, qui liste toutes les branches dont le dernier commit est accessible depuis le dernier commit de la branche actuelle, montrant ainsi efficacement quelles branches ont été entièrement intégrées. Nous avons démontré ceci en créant une nouvelle branche, en effectuant un commit, en la fusionnant dans la branche master, puis en utilisant git branch --merged pour confirmer la fusion.

Nous avons également exploré comment vérifier la fusion à l'aide de git log en recherchant le commit de fusion (merge commit), et avons testé la commande avec des branches non fusionnées pour comprendre la différence dans la sortie. Cette expérience pratique a fourni une compréhension concrète de l'utilisation des commandes Git pour gérer et comprendre l'état des branches dans un dépôt.