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
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á enrama-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.