Menu
Coddy logo textTech

Fusión de tres vías

Parte de la sección Control de versiones del Journey de Terminal de Coddy — lección 36 de 58.

Si ambas ramas han avanzado de forma independiente, Git no puede simplemente realizar un fast-forward. En su lugar, realiza una fusión de tres vías (three-way merge): examina el ancestro común y los extremos de las dos ramas, y genera un nuevo commit que las combina.

Este nuevo commit es el commit de fusión. Tiene dos padres, uno de cada rama:

git switch main
git merge feature -m "Merge feature"

La opción -m proporciona el mensaje del commit de fusión directamente, por lo que Git no abre un editor.

La mayoría de las veces, Git puede combinar los cambios de ambas ramas automáticamente, siempre que afecten a diferentes partes de los archivos. Los conflictos solo ocurren cuando ambas ramas han cambiado las mismas líneas, que es el tema de la siguiente lección.

challenge icon

Desafío

Intermedio

Comienzas en una carpeta nueva con top.txt (contenido: a) y bottom.txt (contenido: b).

Inicializa el repositorio, realiza un primer commit y luego:

  1. Crea una rama llamada feature y añade la línea added a top.txt; realiza un commit.
  2. Cambia a main y añade la línea added a bottom.txt; realiza un commit.
  3. Fusiona feature en main con el mensaje Merge feature.

Imprime el recuento de commits alcanzables desde HEAD usando git rev-list --count HEAD. El recuento esperado es 4 (initial + feature + main + merge).

Hoja de referencia

Cuando ambas ramas han divergido, Git realiza una fusión de tres vías (three-way merge), creando un nuevo commit de fusión con dos padres:

git switch main
git merge feature -m "Merge feature"

La bandera -m establece el mensaje del commit de fusión sin abrir un editor. Git realiza la fusión automáticamente siempre que ambas ramas hayan cambiado líneas diferentes.

Pruébalo tú mismo

Terminal
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Control de versiones