Learn

Resolver un conflicto

Git

Cuando Git no puede decidir, eres tú quien lo hace. Paso a paso.

Requisitos previos

Cuando dos ramas modifican las mismas líneas del mismo archivo, Git no puede fusionar automáticamente y te pide que decidas. Resolver un conflicto da miedo la primera vez, mucho menos la segunda.

Cómo se produce un conflicto

Imagina: en main, la línea 1 de README.md dice "Hola". En tu rama mi-feature, la cambiaste a "Buenas". Mientras tanto, alguien en main la cambió a "Hey". Git no sabe cuál conservar.

Cuando ejecutas la fusión:

shell
git switch main
git merge mi-feature

Git se detiene con un mensaje: CONFLICT (content): Merge conflict in README.md.

Leer los marcadores de conflicto

Abre el archivo en conflicto. Verás algo así:

<<<<<<< HEAD
Hey
=======
Buenas
>>>>>>> mi-feature
  • <<<<<<< HEAD: inicio del bloque en conflicto, versión de la rama actual (aquí main).
  • =======: separador entre las dos versiones.
  • >>>>>>> mi-feature: fin del bloque, versión de la rama entrante.

Resolver el conflicto

Edita el archivo manualmente para quedarte con lo que quieras. Elimina los tres marcadores y escribe la versión final:

Hola y buenas

O conserva una de las dos versiones, o escribe algo completamente diferente. Tú decides.

Finalizar la resolución

Una vez editados todos los archivos en conflicto, hazles stage y commitea:

shell
git add README.md
git commit -m "resuelve conflicto en README.md"

Git genera automáticamente un mensaje de merge commit que puedes aceptar o modificar.

Para ver qué archivos siguen en conflicto en cualquier momento:

shell
git status

Los archivos en conflicto aparecen bajo "both modified". Mientras quede alguno, la fusión no está terminada.

Cancelar una fusión en curso

Si te das cuenta de que tomaste el enfoque equivocado y quieres anular todo:

shell
git merge --abort

Git restaura el estado exacto de antes de la fusión. No se pierde nada.

git-scm.com - git merge

Relacionado

Ver también · ideLas extensiones imprescindibles

Marca los pasos para desbloquear lo siguiente

Volver al curso