Qué es tres-vías
El diff de dos vías muestra qué cambió entre dos versiones. El diff de tres vías también considera el ancestro común, dejando que Git decida si una región fue cambiada por un lado, el otro o ambos. Tres vías es la base del merge.
Inspeccionar un conflicto
<<<<<<< HEAD
nuestra versión
=======
su versión
>>>>>>> feature
Mostrar los tres lados:
git config merge.conflictStyle diff3
git checkout --conflict=diff3 path/to/file
Etapas del índice
git ls-files -u
git show :1:path
git show :2:path
git show :3:path
Estrategias
git checkout --ours path/to/file
git checkout --theirs path/to/file
git checkout --merge path/to/file
git merge -X theirs feature
git merge -X ignore-all-space feature
git merge -X renormalize feature
Mergetool
git config merge.tool meld
git mergetool
Ancestro recursivo (ort)
Cuando dos branches comparten múltiples bases de merge, la estrategia ort (predeterminada desde Git 2.34) las fusiona virtualmente primero.
Errores comunes
Asumir que el ancestro en los marcadores de conflicto coincide con tu commit anterior — es la base del merge. Resolver conflictos eliminando ambos lados.