Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Resolución de Conflictos de Fusión | Trabajando con Ramas en Git
Conceptos Esenciales de Git

bookResolució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:

Abriendo Vim

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:

Archivo con conflictos abierto en 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:

Resolviendo el conflicto

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:

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:

Agregando archivo resuelto

El archivo fue modificado y agregado correctamente al área de preparación. Ahora procede a confirmarlo:

Confirmando el archivo

Nuevamente, se abre el editor de texto predeterminado (Vim en este caso) con el mensaje de confirmación predeterminado relacionado con la fusión:

Mensaje de confirmación predeterminado

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.

Guardando el mensaje modificado y saliendo de Vim

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):

Gráfico del historial de commits

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.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

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

bookResolució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:

Abriendo Vim

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:

Archivo con conflictos abierto en 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:

Resolviendo el conflicto

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:

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:

Agregando archivo resuelto

El archivo fue modificado y agregado correctamente al área de preparación. Ahora procede a confirmarlo:

Confirmando el archivo

Nuevamente, se abre el editor de texto predeterminado (Vim en este caso) con el mensaje de confirmación predeterminado relacionado con la fusión:

Mensaje de confirmación predeterminado

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.

Guardando el mensaje modificado y saliendo de Vim

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):

Gráfico del historial de commits

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.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 6
some-alt