Resolución de Conflictos de Ramas en Git paso a paso
Clase 7 de 42 • Curso de Git y GitHub
Resumen
Cuando trabajamos en equipo, el manejo de conflictos de ramas en Git es esencial para evitar problemas y asegurar una integración fluida de cambios en los archivos compartidos. Aquí te mostramos cómo se genera un conflicto de ramas y la forma efectiva de resolverlo paso a paso.
¿Qué es un conflicto de ramas en Git?
En un entorno colaborativo, es común que varias personas realicen modificaciones en archivos compartidos. Esto puede llevar a conflictos de ramas cuando intentamos fusionar cambios y estos alteran las modificaciones previas realizadas por otro colaborador. En estos casos, se debe elegir qué cambios se mantendrán en la rama principal.
¿Cómo crear un conflicto de ramas para aprender a resolverlo?
Para experimentar y entender cómo resolver un conflicto, podemos crear uno intencionalmente. Aquí están los pasos básicos:
- Verifica tu rama actual con
git branch
. Si solo tienes la ramamain
, estás listo para iniciar. - Crea un archivo, por ejemplo,
conflict.txt
, añade contenido inicial (e.g., “línea original”) y realiza un commit:git add conflict.txt git commit -m "Archivo de conflicto creado"
- Crea una nueva rama con
git checkout -b developer
y modifica el archivo con nuevos cambios, como “cambios desde la rama dev”, realiza un commit. - Vuelve a la rama
main
congit checkout main
y modifica el mismo archivo en esta rama, por ejemplo, añadiendo “segundo cambio desde main”, y realiza otro commit.
Al regresar a main
y realizar la fusión de developer
, verás el conflicto.
¿Cómo resolver un conflicto de ramas en Git?
Cuando Git detecta un conflicto, te indicará las diferencias entre las ramas con etiquetas que facilitan la identificación de cambios:
- Abre el archivo en conflicto. Verás secciones como
<<<<< HEAD
y>>>>>
, que marcan los cambios enmain
y en la rama que intentas fusionar (developer
). - Edita el archivo eliminando las líneas de marcación y decide cuáles cambios deseas conservar, combinar o incluso reescribir.
- Guarda el archivo sin las señalizaciones de conflicto y realiza un commit para registrar la resolución:
git add conflict.txt git commit -m "Conflicto resuelto"
¿Qué hacer después de resolver un conflicto?
Una vez resuelto el conflicto y unificada la versión final en main
, considera eliminar la rama developer
para evitar conflictos futuros. Esto ayuda a mantener el historial de cambios limpio y reduce la posibilidad de cometer errores en el futuro.