Introducción al Error de Merge Conflict en Git
Trabajar en equipo utilizando control de versiones es fundamental, pero en ocasiones, dos desarrolladores modifican la misma línea de código en un archivo simultáneamente. Cuando intentas integrar los cambios mediante una fusión (merge), Git se detiene y genera un Merge Conflict, incapaz de decidir qué versión conservar. Este artículo te guiará para resolverlo de forma limpia y eficiente.
Causas Principales de un Conflicto de Fusión
Los conflictos ocurren principalmente por las siguientes razones:
- Dos personas editan el mismo archivo y la misma línea en ramas separadas antes de hacer un merge o pull.
- Una rama elimina un archivo mientras otra rama modifica su contenido de manera concurrente.
- Falta de sincronización frecuente con el repositorio remoto (no hacer
git pullregularmente).
Método 1: Resolver Conflictos Manualmente en el Editor de Código
Cuando Git marca un conflicto, debes editar los archivos afectados manualmente para elegir la versión correcta.
- Ejecuta
git statusen tu terminal para identificar los archivos en conflicto. - Abre el archivo afectado en tu editor (como VS Code). Verás marcas de conflicto que se ven así:
<<<<<<< HEAD,=======y>>>>>>> nombre-de-rama. - Modifica el código eliminando las líneas sobrantes y las marcas de Git, dejando únicamente la versión final deseada.
- Guarda los cambios en el archivo.
- Añade el archivo resuelto al área de preparación ejecutando
git add nombre-del-archivo. - Finalmente, completa la fusión con
git commit -m "Resuelto conflicto de merge".
Método 2: Usar Herramientas Visuales o Merge Tools
Si prefieres no editar las marcas de texto manualmente, puedes utilizar una herramienta visual integrada para simplificar el proceso.
- Configura una herramienta de terceros o usa la interfaz gráfica de tu IDE ejecutando
git mergetool. - La herramienta te mostrará una interfaz de tres vías: la versión local (HEAD), la versión remota y el resultado final propuesto.
- Selecciona los bloques de código que deseas mantener haciendo clic en las opciones visuales de aceptar cambio actual o cambio entrante.
- Guarda los cambios dentro de la interfaz de la herramienta.
- Continúa el proceso ejecutando
git commitpara finalizar la operación de fusión.