¿Qué es un conflicto de fusión en Git y por qué ocurre?
Cuando trabajas en equipo utilizando sistemas de control de versiones como Git, es común encontrarse con el temido mensaje de conflicto de fusión (Merge Conflict). Este error ocurre cuando dos o más desarrolladores realizan modificaciones en las mismas líneas de un archivo o cuando se intenta fusionar una rama (branch) con cambios que entran en contradicción directa con la rama principal (como main o master).
Git es una herramienta muy inteligente, pero cuando no puede determinar automáticamente qué versión del código debe prevalecer, detiene el proceso de fusión y te exige una intervención manual para resolver el dilema antes de continuar.
Causas principales de los Merge Conflicts en Git
- Dos desarrolladores modifican el mismo archivo y la misma línea en ramas separadas.
- Un archivo es eliminado en una rama mientras que en la otra rama se actualiza activamente.
- Falta de sincronización previa (hacer un
git pullantes de empezar a trabajar en una nueva característica).
Método 1: Solucionar el conflicto manualmente mediante la terminal
- Identifica los archivos afectados ejecutando el comando
git statusen tu terminal. - Abre los archivos conflictivos en tu editor de código favorito (como VS Code). Verás que Git ha marcado las secciones en conflicto con delimitadores especiales:
<<<<<<< HEAD,=======y>>>>>>> nombre-de-la-rama. - Edita el código para dejar únicamente la versión deseada, eliminando los marcadores de Git.
- Añade los archivos solucionados al área de preparación ejecutando
git add nombre-del-archivo. - Finaliza el proceso creando el commit de fusión con
git commit -m "Resuelto conflicto de merge".
Método 2: Utilizar una herramienta gráfica (GUI) como VS Code
- Abre tu proyecto en Visual Studio Code tras intentar el merge y recibir el error.
- Dirígete a la pestaña de Control de Código Fuente (Source Control) en el panel izquierdo.
- VS Code detectará automáticamente los archivos con conflictos y los listará. Haz clic sobre uno de ellos para abrir la vista de comparación.
- La interfaz te mostrará las opciones:
Accept Current Change(Aceptar cambio actual),Accept Incoming Change(Aceptar cambio entrante),Accept Both Changes(Aceptar ambos cambios) oCompare Changes(Comparar cambios). - Selecciona la opción que mejor se adapte a tus necesidades, guarda el archivo, haz clic en el botón de confirmar (ícono de verificación) y haz commit de los cambios.