Résoudre un conflit de fusion
Fusionnons ensuite les branches issue2
et issue3
que nous avons créées à l'étape précédente dans la branche principale.
Basculez tout d'abord vers la branche main
et fusionnez issue2
à l’aide d’une fusion à avance rapide.
$ git checkout main
Switched to branch 'main'
$ git merge issue2
Updating b2b23c4..8f7aa27
Fast-forward
myfile.txt | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
À ce stade, l'historique se présente comme suit:
Essayez ensuite de fusionner issue3
dans main
.
$ git merge issue3
Auto-merging myfile.txt
CONFLICT (content): Merge conflict in myfile.txt
Automatic merge failed; fix conflicts and then commit the result.
Dans ce cas, Git a identifié un conflit parce que le fichier myfile.txt
possède un contenu différent sur la même ligne de chaque branche. La fusion automatique de la branche issue3
avec la branche main
est par conséquent impossible.
La fichier myfile.txt
se présente désormais comme suit:
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of a remote repository
>>>>>>> issue3
Comme vous pouvez le constater, des marqueurs ont été ajoutés au fichier myfile.txt
par Git pour signaler le conflit. Nous devons résoudre manuellement le conflit, comme indiqué
ci-dessous.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Save the status of an index
pull: Obtain the content of a remote repository
Une fois le conflit résolu, validez la modification.
$ git add myfile.txt
$ git commit -m "merge issue3 branch"
# On branch main
nothing to commit (working directory clean)
Au final, l'historique se présente comme suit:
Comme vous pouvez le constater, un nouveau commit de fusion a été créé suite à la résolution du conflit. De plus, la branche principale pointe désormais vers le commit de fusion le plus récent. Il s'agit d'une fusion sans avance rapide.