Conflit lors de la fusion de branches dans Git
Lors du processus de fusion de deux branches, des conflits peuvent survenir
si nous avons modifié le même fichier dans chaque branche.
Considérons la situation où, dans les deux
branches master et test de
la leçon précédente, nous avons modifié et fait
un commit sur le même fichier file.txt.
Ensuite, nous avons appliqué la commande de fusion :
git merge test
En conséquence, nous verrons une erreur :
Auto-merging file.txt
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.
De plus, dans le fichier modifié, nous verrons les marqueurs de conflit :
<<<<<<< HEAD
ici seront écrites les modifications de la branche master
=======
ici seront écrites les modifications de la branche test
>>>>>>> test
Dans la partie supérieure du message sont indiquées les modifications effectuées dans la branche principale actuelle, dans la partie inférieure - celles de la deuxième branche, que nous souhaitons fusionner avec la première. Pour résoudre le conflit, nous devons amener le contenu du fichier à un état commun, après avoir supprimé (manuellement dans l'éditeur !) toutes les désignations de conflit que Git y a laissées.
Après avoir résolu le conflit
(c'est-à-dire après avoir laissé le code correct dans le fichier),
nous indexerons notre fichier et ferons un commit
dans la branche master dans laquelle nous
nous trouvons actuellement :
git add file.txt
git commit -m "fusion"
Ce n'est qu'après cela que nous pouvons basculer
sur la deuxième branche test et effectuer
toutes les mêmes opérations que dans la branche master,
y compris remplacer le contenu du fichier
file.txt par le même que dans la première branche :
git add file.txt
git commit -m "fusion"
Maintenant, nous pouvons à nouveau basculer sur la branche principale et y fusionner la seconde :
git switch master
git merge test
Créez intentionnellement un conflit lors de la fusion de branches. Puis résolvez-le.