Tester avec d'autres branches
Dans cette étape, nous allons créer une nouvelle branche et effectuer un commit sur celle-ci pour voir comment git branch --contains
se comporte lorsqu'un commit n'est présent que sur une seule branche. Cela vous aidera à consolider votre compréhension de la façon dont Git suit les commits sur différentes lignes de développement.
Tout d'abord, créons une nouvelle branche appelée feature-branch
. Assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine
.
cd ~/project/my-time-machine
git branch feature-branch
Maintenant, changeons de branche pour notre nouvelle branche :
git checkout feature-branch
Vous devriez voir une sortie indiquant que vous avez basculé sur la nouvelle branche :
Switched to branch 'feature-branch'
Effectuons un nouveau commit sur cette branche feature-branch
.
echo "Adding a feature" >> feature.txt
git add feature.txt
git commit -m "Add a new feature file"
Maintenant, récupérons le hachage (hash) de ce nouveau commit en utilisant git log --oneline
:
git log --oneline
La sortie affichera votre nouveau commit en haut, suivi des commits précédents. Copiez le hachage du commit "Add a new feature file".
Maintenant, utilisons git branch --contains
avec le hachage du commit "Add a new feature file". Remplacez [feature_commit_hash]
par le véritable hachage que vous avez copié :
git branch --contains [feature_commit_hash]
La sortie devrait afficher seulement * feature-branch
. En effet, ce commit spécifique a été effectué après avoir créé et basculé sur la branche feature-branch
, il n'existe donc que dans l'historique de cette branche.
Maintenant, essayons git branch --contains
avec le hachage du tout premier commit ("Send a message to the future") à nouveau. Remplacez [first_commit_hash]
par le hachage que vous avez utilisé à l'étape précédente :
git branch --contains [first_commit_hash]
Cette fois, la sortie devrait afficher à la fois feature-branch
et * master
. En effet, la branche feature-branch
a été créée à partir de la branche master
, elle contient donc tous les commits qui étaient sur master
à ce moment-là, y compris le premier commit.
Cela démontre comment git branch --contains
peut vous aider à comprendre la relation entre les branches et les commits qu'elles incluent.