Introducción a los conflictos en Git
Cuando trabajas en equipo utilizando control de versiones, es muy común encontrarse con el temido mensaje de conflicto de fusión (Merge Conflict). Este problema surge cuando Git no puede resolver automáticamente las diferencias entre dos ramas que estás intentando fusionar. No te preocupes, en este artículo te enseñaremos cómo solucionarlo paso a paso para que recuperes el flujo de trabajo en tu proyecto.
Causas principales del Merge Conflict
Un conflicto de fusión ocurre típicamente por las siguientes razones:
- Dos desarrolladores modificaron la misma línea de código en archivos diferentes ramas.
- Un archivo fue eliminado en una rama pero modificado activamente en la otra.
- Falta de sincronización frecuente con el repositorio remoto antes de realizar un
git pushogit pull.
Método 1: Identificar y resolver conflictos manualmente
- Abre tu terminal y ejecuta el comando de fusión habitual, por ejemplo:
git merge nombre-de-rama. - Git te indicará qué archivos tienen conflictos con el mensaje
CONFLICT (content): Merge conflict in [archivo]. - Abre el archivo afectado en tu editor de código favorito (como VS Code). Verás marcas especiales que Git añade automáticamente:
<<<<<<< HEAD
Tu código actual en esta rama
=======
El código entrante de la otra rama
>>>>>>> nombre-de-rama
- Edita el archivo manualmente para dejar únicamente el código correcto que deseas conservar, eliminando las líneas
<<<<<<<,=======y>>>>>>>. - Guarda los cambios y añade el archivo al área de preparación ejecutando:
git add [archivo]. - Finalmente, completa la fusión con un commit:
git commit -m "Resuelto conflicto de fusión".
Método 2: Utilizar herramientas visuales o extensiones de IDE
- Si prefieres no editar los archivos de texto plano manualmente, la mayoría de los entornos de desarrollo modernos (como Visual Studio Code, IntelliJ o GitKraken) detectan los conflictos automáticamente.
- Al abrir el archivo en conflicto, VS Code te ofrecerá botones interactivos como "Accept Current Change", "Accept Incoming Change" o "Accept Both Changes".
- Haz clic en la opción que mejor se adapte a las necesidades de tu código.
- Una vez aplicado el cambio visual, guarda el archivo, añádelo al staging y haz commit tal como se indicó en el método anterior.