Learn

Résoudre un conflit

Git

Quand Git ne sait pas trancher, c'est à toi de le faire. Pas à pas.

Quand deux branches modifient les mêmes lignes du même fichier, Git ne peut pas fusionner automatiquement et te demande de trancher. La résolution de conflit fait peur la première fois, beaucoup moins la deuxième.

Comment un conflit se produit

Imagine : sur main, la ligne 1 de README.md dit "Bienvenue". Sur ta branche ma-feature, tu l'as changée en "Salut". Entre-temps, quelqu'un sur main l'a changée en "Bonjour". Git ne sait pas laquelle garder.

Quand tu lances le merge :

shell
git switch main
git merge ma-feature

Git s'arrête avec un message CONFLICT (content): Merge conflict in README.md.

Lire les marqueurs de conflit

Ouvre le fichier en conflit. Tu vois quelque chose comme ça :

<<<<<<< HEAD
Bonjour
=======
Salut
>>>>>>> ma-feature
  • <<<<<<< HEAD : début du bloc en conflit, version de la branche courante (ici main).
  • ======= : séparateur entre les deux versions.
  • >>>>>>> ma-feature : fin du bloc, version de la branche entrante.

Résoudre le conflit

Tu édites le fichier manuellement pour garder ce que tu veux. Supprime les trois marqueurs et écris la version finale :

Bienvenue et bonjour

Ou garde l'une des deux versions, ou écris quelque chose de complètement différent. C'est toi qui décides.

Finaliser la résolution

Une fois tous les fichiers en conflit édités, tu les stages et tu commites :

shell
git add README.md
git commit -m "résout le conflit sur README.md"

Git génère automatiquement un message de merge commit, tu peux l'accepter ou le modifier.

Pour voir quels fichiers sont encore en conflit à tout moment :

shell
git status

Les fichiers en conflit apparaissent sous "both modified". Tant qu'il en reste, le merge n'est pas terminé.

Abandonner un merge en cours

Si tu réalises que tu t'es trompé d'approche et veux tout annuler :

shell
git merge --abort

Git restaure l'état exact d'avant le merge. Rien n'est perdu.

git-scm.com - git merge

À côté

À côté · ideLes extensions incontournables

Coche les étapes pour débloquer la suite

Retour au cours