Stratégies vs drivers
Une stratégie de merge décide comment Git combine deux histoires — ort (par défaut depuis Git 2.34), recursive, resolve, octopus et ours. Un driver de merge est une logique par fichier qui s'exécute quand les deux côtés ont changé le même fichier.
Sélectionner une stratégie
git merge -s ort feature
git merge -s ours legacy-branch
git merge -s octopus a b c d
Options de stratégie
git merge -X theirs feature
git merge -X ignore-all-space main
git merge -X renormalize legacy
Drivers personnalisés
[merge "ours-only"]
name = Toujours garder notre version
driver = true
CHANGELOG.md merge=ours-only
*.lock merge=union
Driver du monde réel : yarn.lock
[merge "yarn-lock"]
name = Re-exécuter yarn install
driver = "yarn install --silent && git add yarn.lock"
Contrat du driver
Les scripts de driver reçoivent des placeholders : %O ancêtre, %A le nôtre (écrire le résultat ici), %B le leur, %P chemin, %L taille du marqueur de conflit.
Erreurs courantes
Oublier que les drivers doivent être installés sur chaque clone — seul .gitattributes est partagé.