Ramas y Merge
Teórico — El superpoder de Git: trabajar en funcionalidades en paralelo sin romper el código principal.
01 ¿Qué son las ramas?
Una rama (branch) es una línea independiente de desarrollo. Imagina que tu
proyecto es un árbol: el tronco es la rama principal (main) y cada branch es
una rama que sale del tronco para trabajar en algo nuevo sin afectar lo demás.
Cuando creas una rama, Git no copia los archivos. Solo crea un puntero al commit actual. Esto lo hace extremadamente rápido y liviano, incluso en proyectos enormes.
02 ¿Por qué usar ramas?
main siempre tiene código que funciona.
Si experimentas en otra rama y falla, main no se ve afectada.
03 Comandos esenciales de ramas
Crear, listar y cambiar de rama
# Ver en qué rama estás y listar todas
git branch
# Crear una nueva rama
git branch nombre-rama
# Cambiar a otra rama
git checkout nombre-rama
# Crear y cambiar en un solo paso (atajo)
git checkout -b nombre-rama
# Eliminar una rama (después de merge)
git branch -d nombre-rama
git checkout, mueves HEAD
a la rama indicada. En git log verás algo como
(HEAD -> main).
04 git merge — Unir ramas
Cuando terminas de trabajar en una rama, necesitas integrar esos cambios de vuelta a la rama principal. Eso es un merge (fusión).
Flujo típico de merge
# 1. Asegurarte de estar en la rama destino (main)
git checkout main
# 2. Fusionar la otra rama
git merge nombre-rama
# 3. (Opcional) Eliminar la rama ya fusionada
git branch -d nombre-rama
Fast-forward
Si main no avanzó desde que creaste la rama,
Git simplemente mueve el puntero hacia adelante. No crea un
commit extra de merge.
Merge commit
Si main tiene commits nuevos que la rama no tiene,
Git crea un commit de merge que une ambas
historias en un punto.
05 Conflictos de merge
Un conflicto ocurre cuando dos ramas modificaron las mismas líneas del mismo archivo. Git no sabe cuál versión elegir, así que te pide que lo resuelvas manualmente.
Cómo se ve un conflicto
<<<<<<< HEAD
Esto es lo que tiene tu rama actual (main)
=======
Esto es lo que tiene la otra rama (feature)
>>>>>>> feature
Para resolver: edita el archivo, elige qué contenido mantener
(o combínalos), elimina las marcas <<<,
===, >>>, y luego haz
git add + git commit.
06 Buenas prácticas para ramas
| Práctica | Ejemplo |
|---|---|
| Usa nombres descriptivos | feature/login-form,
fix/navbar-color
|
| Haz ramas cortas (pocos días) | Menos conflictos al hacer merge |
| Elimina ramas después de merge | git branch -d nombre-rama |
No trabajes directo en main |
Siempre crea una rama para cada tarea |
Cuestionario de evaluación
Pon a prueba lo que aprendiste sobre ramas y merge.