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, nos encontramos con un conflicto de fusión, así que ahora es momento de resolverlo. Primero, abramos nuestro archivo branch_learning.txt con el editor Vim utilizando el siguiente comando:

Si no tienes Vim instalado, puedes utilizar otros editores de texto, como nano o atom (reemplaza vim por el nombre de tu editor de texto en el comando anterior). Sin embargo, se recomienda encarecidamente utilizar Vim, ya que será mucho más sencillo seguir las instrucciones.

Así se ve nuestro archivo abierto en el editor Vim:

Ahora, podemos ver marcadores que indican las secciones en conflicto. Estos marcadores están representados por flechas y símbolos especiales para resaltar los cambios en conflicto de diferentes ramas. Los marcadores de conflicto son los siguientes:

  • <<<<<<< HEAD: Indica el inicio de los cambios de la rama actual (master en este caso);
  • =======: Separa los cambios de la rama actual (HEAD) y los cambios 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 los conflictos, se puede seleccionar el cambio de la rama actual (master), seleccionar el cambio de la rama que se está fusionando (feature/new-feature) o editar manualmente los cambios.

Editaremos manualmente los cambios combinando los cambios de ambas ramas siguiendo los siguientes pasos:

1. Entrar en modo de edición

Primero, se debe ingresar al modo insertar (edición) en Vim presionando i. Esto permite editar el texto.

2. Editar la sección en conflicto

A continuación, se deben combinar las líneas de ambas ramas una después de la otra, de modo que el contenido resultante del archivo sea el siguiente:

3. Salir del modo de edición, guardar y salir:

Para salir del modo de inserción, se debe presionar la tecla Escape. Luego, para guardar los cambios y salir, se debe escribir :wq y presionar la tecla Enter:

Confirmación del archivo

Dado que resolvimos los conflictos, ahora agreguemos branch_learning.txt al área de preparación y verifiquemos el estado:

El archivo fue modificado y efectivamente agregado al área de preparación. Ahora podemos proceder a confirmarlo:

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

Accedamos al modo de inserción en Vim presionando i y modifiquemos este mensaje añadiendo la siguiente línea: Kept lines from both branches para especificar cómo resolvimos los conflictos. Aquí está el mensaje de confirmación completo:

Para salir del modo de inserción, guardar los cambios y salir de Vim, se debe presionar la tecla Escape, luego escribir :wq y presionar la tecla Enter.

La confirmación se realizó con éxito y el conflicto de fusión ha sido resuelto.

Ahora observemos nuestro historial de commits como un gráfico (opción --graph) con una línea por cada commit (opción --oneline):

Aquí podemos ver nuestro último commit de fusión y la forma 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?

What should I do if I encounter another merge conflict?

How can I view more details about a specific commit in the log?

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, nos encontramos con un conflicto de fusión, así que ahora es momento de resolverlo. Primero, abramos nuestro archivo branch_learning.txt con el editor Vim utilizando el siguiente comando:

Si no tienes Vim instalado, puedes utilizar otros editores de texto, como nano o atom (reemplaza vim por el nombre de tu editor de texto en el comando anterior). Sin embargo, se recomienda encarecidamente utilizar Vim, ya que será mucho más sencillo seguir las instrucciones.

Así se ve nuestro archivo abierto en el editor Vim:

Ahora, podemos ver marcadores que indican las secciones en conflicto. Estos marcadores están representados por flechas y símbolos especiales para resaltar los cambios en conflicto de diferentes ramas. Los marcadores de conflicto son los siguientes:

  • <<<<<<< HEAD: Indica el inicio de los cambios de la rama actual (master en este caso);
  • =======: Separa los cambios de la rama actual (HEAD) y los cambios 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 los conflictos, se puede seleccionar el cambio de la rama actual (master), seleccionar el cambio de la rama que se está fusionando (feature/new-feature) o editar manualmente los cambios.

Editaremos manualmente los cambios combinando los cambios de ambas ramas siguiendo los siguientes pasos:

1. Entrar en modo de edición

Primero, se debe ingresar al modo insertar (edición) en Vim presionando i. Esto permite editar el texto.

2. Editar la sección en conflicto

A continuación, se deben combinar las líneas de ambas ramas una después de la otra, de modo que el contenido resultante del archivo sea el siguiente:

3. Salir del modo de edición, guardar y salir:

Para salir del modo de inserción, se debe presionar la tecla Escape. Luego, para guardar los cambios y salir, se debe escribir :wq y presionar la tecla Enter:

Confirmación del archivo

Dado que resolvimos los conflictos, ahora agreguemos branch_learning.txt al área de preparación y verifiquemos el estado:

El archivo fue modificado y efectivamente agregado al área de preparación. Ahora podemos proceder a confirmarlo:

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

Accedamos al modo de inserción en Vim presionando i y modifiquemos este mensaje añadiendo la siguiente línea: Kept lines from both branches para especificar cómo resolvimos los conflictos. Aquí está el mensaje de confirmación completo:

Para salir del modo de inserción, guardar los cambios y salir de Vim, se debe presionar la tecla Escape, luego escribir :wq y presionar la tecla Enter.

La confirmación se realizó con éxito y el conflicto de fusión ha sido resuelto.

Ahora observemos nuestro historial de commits como un gráfico (opción --graph) con una línea por cada commit (opción --oneline):

Aquí podemos ver nuestro último commit de fusión y la forma 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