Resolución de Conflictos de Fusión
Resolución de Conflictos
En el capítulo anterior, ocurrió un conflicto de fusión, por lo que ahora es momento de resolverlo.
Primero, abre el archivo branch_learning.txt en el editor Vim utilizando el siguiente comando:
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 la alineación con 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 estos pasos:
1. Entrar en modo de edición
Primero, entra en el modo insertar en Vim presionando i.
Esto te 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 de la siguiente manera:
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:
Confirmación del archivo
Dado que los conflictos están resueltos, agregar el archivo branch_learning.txt al área de preparación y verificar el estado:
El archivo fue modificado y agregado correctamente al área de preparación. Ahora procede a confirmarlo:
Nuevamente, se abre el editor de texto predeterminado (Vim en este caso) con el mensaje de confirmación predeterminado relacionado con la fusión:
Entrar en modo de inserción en Vim presionando i, luego modificar el mensaje agregando la línea
Kept lines from both branches
para describir cómo se resolvieron los conflictos.
Aquí está el mensaje de confirmación completo:
Para salir del modo de inserción, guardar los cambios y cerrar Vim, presionar la tecla Escape, luego escribir :wq y presionar Enter.
El commit se realizó correctamente y el conflicto de fusión ahora está resuelto.
Ahora, revisa el historial de commits como un gráfico (opción --graph) con una línea por commit (opción --oneline):
Aquí se observa 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
Can you explain what a three-way merge is?
How do I interpret the output of `git log --graph --oneline`?
What should I do if I see unexpected results in the commit graph?
Awesome!
Completion rate improved to 3.57
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, por lo que ahora es momento de resolverlo.
Primero, abre el archivo branch_learning.txt en el editor Vim utilizando el siguiente comando:
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 la alineación con 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 estos pasos:
1. Entrar en modo de edición
Primero, entra en el modo insertar en Vim presionando i.
Esto te 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 de la siguiente manera:
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:
Confirmación del archivo
Dado que los conflictos están resueltos, agregar el archivo branch_learning.txt al área de preparación y verificar el estado:
El archivo fue modificado y agregado correctamente al área de preparación. Ahora procede a confirmarlo:
Nuevamente, se abre el editor de texto predeterminado (Vim en este caso) con el mensaje de confirmación predeterminado relacionado con la fusión:
Entrar en modo de inserción en Vim presionando i, luego modificar el mensaje agregando la línea
Kept lines from both branches
para describir cómo se resolvieron los conflictos.
Aquí está el mensaje de confirmación completo:
Para salir del modo de inserción, guardar los cambios y cerrar Vim, presionar la tecla Escape, luego escribir :wq y presionar Enter.
El commit se realizó correctamente y el conflicto de fusión ahora está resuelto.
Ahora, revisa el historial de commits como un gráfico (opción --graph) con una línea por commit (opción --oneline):
Aquí se observa 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!