Estrategias vs drivers
Una estrategia de merge decide cómo Git combina dos historias — ort (predeterminada desde Git 2.34), recursive (legacy), resolve, octopus y ours. Un driver de merge es lógica por archivo que se ejecuta cuando ambos lados han cambiado el mismo archivo.
Seleccionar una estrategia
git merge -s ort feature
git merge -s ours legacy-branch
git merge -s octopus a b c d
Opciones de estrategia
git merge -X theirs feature
git merge -X ignore-all-space main
git merge -X renormalize legacy
Drivers personalizados
[merge "ours-only"]
name = Mantener siempre nuestra versión
driver = true
Conéctalo en .gitattributes:
CHANGELOG.md merge=ours-only
*.lock merge=union
Driver del mundo real: yarn.lock
[merge "yarn-lock"]
name = Re-ejecutar yarn install
driver = "yarn install --silent && git add yarn.lock"
Contrato del driver
Los scripts de driver reciben placeholders: %O ancestro, %A el nuestro (escribir resultado aquí), %B el suyo, %P ruta, %L tamaño del marcador de conflicto.
Errores comunes
Olvidar que los drivers deben instalarse en cada clone — solo .gitattributes se comparte. Documenta la configuración en tu README.