Quand il y a un conflit entre une branche locale et distante, cela signifie que des modifications ont été apportées sur des lignes/fichiers communs ce qui empêche une fusion automatique. Nous allons voir comment résoudre cela.

Pour cet exemple, nous utiliserons une branche mabranche avec un dépôt distant nommé origin.

Résolution des conflits

La première chose à faire consiste à récupérer les modifications distantes :

git fetch origin

Cela permet de récupérer les derniers commits sans rien fusionner, l'objectif étant de pouvoir vérifier ce qui a été changé par rapport au dépôt local en utilisant git diff par exemple.

Il faut maintenant fusionner le contenu distant récupéré avec le contenu local :

git merge origin/mabranche mabranche

Pour résoudre les conflits, il faut éditer les fichiers qui posent souci (des marqueurs sont placés par git pour repérer ce qui ne va pas) :

  • <<<<<<<
  • =======
  • >>>>>>>

Voici une illustration de ce que cela peut donner avec un changement simple :

<<<<<<< HEAD
Modifications en local
=======
Modifications à distance
>>>>>>> origin/mabranche

Une fois les changements apportés, il faut valider ce qui a été fait :

git add <fichiers_modifiés>
git commit -m "Message de résolution des conflits"

La dernière étape consiste à publier le tout :

git push origin mabranche


Dans le cas ou on ne veut pas créer de commit spécifique au merge pour garder un historique plus simple, il est possible d'utiliser rebase qui est présenté dans la documentation officielle de git.