Introducción al Error de Merge Conflict en Git
Uno de los dolores de cabeza más comunes para los desarrolladores que trabajan en equipo utilizando control de versiones es el temido CONFLICT (content): Merge conflict in.... Este error ocurre cuando Git intenta fusionar dos ramas que han modificado las mismas líneas de un archivo de manera diferente, lo que impide que el sistema decida automáticamente qué cambios conservar.
Causas Principales de los Conflictos en Git
Los conflictos de fusión no son un fallo del software, sino una advertencia de seguridad para evitar la pérdida de código. Las causas más frecuentes son:
- Dos desarrolladores modifican la misma línea de un archivo en ramas distintas antes de hacer un
git mergeogit pull. - Se intenta fusionar una rama que elimina un archivo que otra rama ha modificado simultáneamente.
- Falta de sincronización frecuente con el repositorio remoto (ausencia de
git fetchygit rebaseogit mergeregulares).
Método 1: Solucionar el Conflicto Manualmente Paso a Paso
Cuando Git se detiene debido a un conflicto, puedes seguir estos pasos para resolverlo de forma manual y segura:
- Identifica los archivos afectados ejecutando el comando:
git status - Abre los archivos marcados como
both modifieden tu editor de código favorito (como VS Code). - Busca los delimitadores de conflicto que Git inserta automáticamente en el código:
<<<<<<< HEAD,=======y>>>>>>> branch-name. - Edita el código para dejar únicamente la versión deseada y elimina las líneas de los delimitadores.
- Marca el archivo como resuelto añadiéndolo al área de Staging:
git add nombre-del-archivo.extension - Finaliza la fusión ejecutando:
git commit -m "Resuelto conflicto de merge"
Método 2: Usar Herramientas Visuales o Merge Tools
Si prefieres no editar los archivos de texto plano manualmente, puedes utilizar una interfaz gráfica para resolver los conflictos de forma visual.
- Configura una herramienta externa de merge (como Meld, KDiff3 o la integrada en tu IDE) ejecutando:
git mergetool - Git abrirá la interfaz gráfica mostrando los cambios locales, los remotos y el resultado final propuesto.
- Selecciona las secciones de código que deseas mantener mediante los botones de la herramienta.
- Guarda los cambios, cierra la herramienta y completa el proceso haciendo
git commit.