Por Anónimo (no verificado) , 29 Abril 2026

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.