Acerca de los conflictos de fusión
Los conflictos de fusión suceden cuando fusionas ramas que tienen confirmaciones de cambios contrapuestas, y Git necesita tu ayuda para decidir qué cambios incorporar en la fusión final.
Por lo general, Git puede resolver las diferencias entre las ramas y fusionarlas automáticamente. Generalmente, los cambios están en diferentes líneas o incluso en diferentes archivos, lo que hace que sea simple para los equipos comprender la fusión. Sin embargo, a veces hay cambios contrapuestos que Git no puede resolver sin tu ayuda. Por lo general, los conflictos de fusión suceden cuando las personas realizan diferentes cambios en la misma línea en el mismo archivo o cuando una persona edita un archivo y otra persona elimina el mismo archivo.
Debes resolver todos los conflictos de fusión antes de poder fusionar un solicitud de extracción en GitHub Enterprise. Si tienes un conflicto de fusión entre la rama de comparación y la rama base en tu solicitud de extracción, puedes ver una lista de archivos con cambios conflictivos arriba del botón Fusionar solicitud de extracción. El botón Fusionar solicitud de extracción se desactiva hasta que hayas resuelto todos los conflictos entre la rama de comparación y la rama base.
Resolver conflictos de fusión
Para resolver un conflicto de fusión, debes editar de forma manual el archivo conflictivo para seleccionar los cambios que quieres mantener en la fusión final. Hay un par de maneras diferentes de resolver un conflicto de fusión:
- Si tu conflicto de fusión es ocasionado por cambios de líneas contrapuestos, como cuando las personas realizan diferentes cambios en la misma línea del mismo archivo en diferentes ramas en tu repositorio de Git, lo puedes resolver en GitHub Enterprise usando el editor de conflictos. Para obtener más información, consulta "Resolver un conflicto de fusión en GitHub".
- Para todos los otros tipos de conflictos de fusión, debes resolver el conflicto de fusión en un clon local del repositorio y subir el cambio a tu rama en GitHub Enterprise. Puedes usar la línea de comandos o una herramienta como GitHub Desktop para subir el cambio. Para obtener más información, consulta "Resolver un conflicto de fusión en la línea de comandos".
Si tienes un conflicto de fusión en la línea de comandos, no puedes subir tus cambios locales a GitHub Enterprise hasta que resuelvas el conflicto de fusión localmente en tu equipo. Si intentas fusionar ramas en la línea de comandos que tiene un conflicto de fusión, recibirás un mensaje de errror. Para obtener más información, consulta "Resolver un conflicto de fusión en la línea de comandos".
$ git merge BRANCH-NAME> Auto-merging styleguide.md
> CONFLICT (content): Merge conflict in styleguide.md
> Automatic merge failed; fix conflicts and then commit the result