git / Guías

Resolver un conflicto Git merge, paso a paso

Un conflicto indica que Git necesita tu decisión sobre el contenido final. Dos ramas modificarán la misma línea en un repositorio de prueba.

Los ejemplos usan Bash; consulta las referencias para los detalles de tu entorno.

Crea el conflicto

Ejecuta este ejercicio Bash en un directorio nuevo y vacío. Los nombres de las ramas y del archivo pertenecen a este ejemplo.

git init -b main
git config user.name "DevSheet Demo"
git config user.email "demo@example.invalid"
printf "colour=blue\n" > settings.txt
git add settings.txt
git commit -m "Base colour"
git switch -c feature
printf "colour=green\n" > settings.txt
git commit -am "Feature colour"
git switch main
printf "colour=red\n" > settings.txt
git commit -am "Main colour"
git merge feature

El último comando debe detenerse con un conflicto en settings.txt. En este ejercicio se espera un código de salida distinto de cero.

Lee las dos versiones

git status --short
git diff -- settings.txt

Busca UU settings.txt. En el archivo, <<<<<<< HEAD introduce el texto de la rama actual, ======= separa las versiones y >>>>>>> feature cierra el texto entrante. Estas etiquetas describen un merge normal; un rebase tiene otro contexto.

Escribe y revisa el contenido final

En el ejercicio elige verde. Reemplaza todo el archivo en conflicto, añade únicamente ese archivo al staging y revisa el diff.

printf "colour=green\n" > settings.txt
git add settings.txt
git diff --cached
git merge --continue
git status --short

Guarda el mensaje cuando se abra el editor. Resultado esperado: estado limpio y un commit de merge. En un proyecto real, combina los cambios según el comportamiento deseado y ejecuta las comprobaciones pertinentes antes de terminar.

Cancela o revisa un merge bloqueado

Mientras el conflicto siga pendiente, git merge --abort intenta volver al estado anterior. Haz commit o guarda en stash el trabajo ajeno a la operación antes de empezar: abort puede no reconstruir cambios previos.

Añadir un archivo al staging comunica que resolviste el conflicto, aunque queden marcadores. Lee el diff. Archivos binarios, conflictos de eliminación/modificación y renombrados requieren decisiones propias.

Referencias

Todas las guías