Git & GitHub : Gestion des Conflits de Fusion
Apprenez à gérer les conflits de fusion avec Git. Découvrez comment résoudre efficacement les conflits et maintenir l'intégrité de votre code.
En cas de fusion conflictuelle, Git vous proposera de résoudre manuellement la situation au sein des fichiers concernés.
Marqueurs de conflits
Lorsqu’un conflit est détecté sur un fichier, Git marque les lignes concernées avec des marqueurs <<<<<<<
, =======
et >>>>>>>
afin que nous puissions procéder à la résolution de conflits.
<<<<<<<
: Indique le début d’une section de conflit provenant de la branche source (celle qui reçoit la fusion).=======
: Sépare les modifications de la branche source et de la branche locale.>>>>>>>
: Indique la fin d’une section de conflit provenant de la branche à fusionner.
Concrètement, Git vous proposera de résoudre les conflits directement au sein de votre IDE :
<<<<<<< HEAD
console.log("A");
=======
console.log("B");
>>>>>>> demo
Vous avez deux façons de résoudre ces conflits :
- Utiliser les boutons ou assistants intégrés au sein de la plupart des IDE pour faciliter la résolution automatique des conflits.
- Résoudre les conflits manuellement en supprimant les marqueurs et en conservant le code que vous souhaitez garder.
Options de résolution
Que vous choisissiez de résoudre les conflits en éditant manuellement le code ou en exploitant les fonctions intégrées aux IDE, 3 options de résolution s’offrent à vous :
L’éditeur de code propose alors 3 options pour résoudre ce conflit :
- Garder l’état actuel du fichier (le code de la branche source)
- Accepter les changements à venir (le code de la branche à fusionner)
- Garder l’état actuel + les changements à venir (le code de la branche source ainsi que de celle à fusionner)
Finalisation de la fusion
Une fois les conflits résolus, il faudra alors :
- Ajouter les fichiers modifiés lors de la résolution de conflit à la staging area
- Effectuer un nouveau commit pour finaliser la fusion
git add <fichiers-en-conflit>
git commit -m "Résolution de conflits : Fusion de la branche X dans la branche Y"