Fusión de ramas con git merge


Vamos a realizar un ejemplo paso a paso con Git, centrado en branches, merge y cómo resolver conflictos

oscar Escrito por oscar 22 April 2025 18 0

Vamos a realizar un ejemplo paso a paso con Git, centrado en branches, merge y cómo resolver conflictos. Te lo explico como si lo estuviéramos haciendo en tu máquina.

🌿 Escenario: Dos personas editan el mismo archivo en diferentes ramas

Supongamos que tenemos un repositorio con un archivo llamado saludo.txt.

Paso 1: Crear el repositorio y el archivo inicial

mkdir ejemplo-git cd ejemplo-git 
git init 
echo "Hola, mundo!" > saludo.txt 
git add . 
git commit -m "Commit inicial con saludo.txt"

Paso 2: Crear una nueva rama y modificar el archivo

git checkout -b rama-uno
echo "Este saludo viene de rama uno." >> saludo.txt
git add saludo.txt
git commit -m "Agregado texto desde rama uno"

Paso 3: Volver a main y crear otra rama

git checkout main
git checkout -b rama-dos echo "Este saludo viene de rama dos." >> saludo.txt
git add saludo.txt
git commit -m "Agregado texto desde rama dos"

Paso 4: Unir ramas y generar conflicto

Ahora estás en rama-dos, intenta hacer merge de rama-uno en esta rama:

git merge rama-uno

💥 Aquí ocurre un conflicto porque ambos cambios están en la misma línea o muy cerca en el archivo saludo.txt.

🔧 Cómo se ve un conflicto

Abre saludo.txt y verás algo como:

Hola, mundo! 
<<<<<<< 
HEAD Este saludo viene de rama dos.
=======
Este saludo viene de rama uno.
>>>>>>>
rama-uno

Esto significa:

  • HEAD = lo que está en rama-dos

  • rama-uno = el contenido que estás tratando de unir

✅ Resolver el conflicto

Edita el archivo para que quede como tú quieras. Por ejemplo:

Hola, mundo! Este saludo viene de rama uno y rama dos.

Después:

git add saludo.txt
git commit -m "Conflicto resuelto entre rama uno y dos"

Paso 5: (Opcional) Unir a main

git checkout main
git merge rama-dos

Ya estaría todo fusionado correctamente.

🧠 Consejos para resolver conflictos

  • Usa un editor como VS Code, Sublime o GitKraken que te muestre visualmente los conflictos.

  • Siempre lee con calma qué rama representa cada cambio (HEAD y el otro nombre).

  • Si no estás seguro, puedes guardar una copia temporal antes de resolver.


Comentario

Debe aceptar antes de enviar