Par Anonyme (non vérifié) , 29 avril 2026

Ce que vous accomplirez

Vous créerez un conflit de merge délibérément, parcourrez la résolution, et apprendrez les outils et patterns qui rendent les conflits non-effrayants.

Étape 1 : configurer un sandbox

mkdir conflict-tutorial && cd conflict-tutorial
git init
cat > recipe.txt <<'EOF'
Recette de sauce tomate
Ingrédients :
- 1 oignon haché
- 2 gousses d'ail
- 1 boîte de tomates
EOF
git add recipe.txt
git commit -m "Recette initiale"

Étape 2 : créer deux branches divergentes

git checkout -b add-basil
sed -i.bak 's/2 gousses d.ail/2 gousses d.ail\n- poignée de basilic/' recipe.txt && rm recipe.txt.bak
git commit -am "Add basil"

git checkout -b add-oregano main
sed -i.bak 's/2 gousses d.ail/2 gousses d.ail\n- pincée d.origan/' recipe.txt && rm recipe.txt.bak
git commit -am "Add oregano"

Étape 3 : déclencher le conflit

git checkout main
git merge add-basil
git merge add-oregano

Étape 4 : lire les marqueurs de conflit

<<<<<<< HEAD
- poignée de basilic
=======
- pincée d'origan
>>>>>>> add-oregano

Étape 5 : résoudre

- 2 gousses d'ail
- poignée de basilic
- pincée d'origan
- 1 boîte de tomates

Étape 6 : stage et compléter le merge

git add recipe.txt
git status
git merge --continue

Outils qui aident

git mergetool
git config --global merge.tool vimdiff

Abandonner

git merge --abort

Patterns courants

  • Prendre un côté entier : git checkout --ours file ou git checkout --theirs file.
  • Prendre les deux : combiner manuellement.
  • Redémarrer le merge : git merge --abort.

Inspecter avant de résoudre

git diff
git log --merge -p <file>
git show :1:<file>
git show :2:<file>
git show :3:<file>

Rerere pour conflits répétés

git config --global rerere.enabled true