Resolución de Conflictos de Fusión
Desliza para mostrar el menú
Resolución de conflictos
En el capítulo anterior, ocurrió un conflicto de fusión, así que ahora es momento de solucionarlo.
Primero, abre el archivo branch_learning.txt en el editor Vim utilizando el siguiente comando:
vim branch_learning.txt
Si Vim no está instalado, puedes utilizar otro editor de texto como nano o atom reemplazando vim por el nombre de tu editor en el comando anterior.
Sin embargo, se recomienda utilizar Vim para facilitar el seguimiento de los pasos mostrados aquí.
Así se ve el archivo abierto en el editor Vim:
Ahora puedes ver los marcadores de conflicto que indican las secciones en conflicto.
Estos marcadores utilizan flechas y símbolos especiales para resaltar las diferencias entre ramas:
<<<<<<< HEAD: marca el inicio de los cambios de la rama actual (master);=======: separa los cambios de la rama actual (HEAD) y los de la rama que se está fusionando;>>>>>>> feature/new-feature: marca el final de los cambios de la rama que se está fusionando.
Para resolver el conflicto, elige una de las siguientes opciones:
- Conservar los cambios de la rama actual (
master); - Conservar los cambios de la rama fusionada (
feature/new-feature); - Editar manualmente el contenido.
Edita manualmente el archivo combinando los cambios de ambas ramas siguiendo los siguientes pasos:
1. Entrar en modo de edición
Primero, entra en el modo insertar en Vim presionando i.
Esto permite editar el texto.
2. Editar la sección en conflicto
A continuación, combinar las líneas de ambas ramas de forma secuencial. El contenido resultante del archivo debe verse así:
New branch
New line from the master branch
New line from the feature branch
3. Salir del modo de edición, guardar y salir
Presionar la tecla Escape para salir del modo de inserción.
Luego escribir :wq y presionar Enter para guardar los cambios y salir de Vim:
Confirmar el archivo
Una vez resueltos los conflictos, agregar el archivo branch_learning.txt al área de preparación y comprobar el estado:
git add branch_learning.txt
git status
El archivo fue modificado y agregado correctamente al área de preparación. Ahora proceder a confirmarlo:
git commit
Una vez más, se abre el editor de texto predeterminado (Vim en mi caso) con el mensaje de confirmación predeterminado sobre la fusión:
Entra en modo de inserción en Vim presionando i, luego modifica el mensaje agregando la línea
Kept lines from both branches
para describir cómo se resolvieron los conflictos.
Este es el mensaje de confirmación completo:
Merge branch 'feature/new-feature'
Kept lines from both branches
Para salir del modo de inserción, guardar los cambios y cerrar Vim, presiona la tecla Escape, luego escribe :wq y presiona Enter.
El commit se realizó con éxito y el conflicto de fusión está resuelto.
Ahora observemos nuestro historial de commits como un gráfico (opción --graph) con una línea por cada commit (opción --oneline):
git log --graph --oneline
Aquí puedes ver el commit de fusión más reciente junto con la estructura característica de una fusión de tres vías.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla