Saltar al contenido
Contenido de Programación

Lección 2.5.4: Ramas

Una rama es una línea de trabajo aparte: pruebas algo sin tocar lo que ya funciona.

La idea

Hasta ahora, cada commit iba detrás del anterior, en una sola línea: la rama main.

Una rama es otra línea de commits que sale de ahí. Pruebas en ella lo que quieras, y main sigue intacta. Si sale bien, juntas las dos; si no, la tiras.

Crear una rama y cambiar a ella

Terminal
git switch -c despedida
Terminal
Switched to a new branch 'despedida'

-c la crea. git branch lista las ramas, con * en la actual:

Terminal
git branch
Terminal
* despedida
  main

Trabajar en ella

Añade al final de hola.js:

JavaScript
console.log("Adiós");

Y guárdalo en un commit, como siempre:

Terminal
git add hola.js
git commit -m "feat(saludo): añade la despedida"

Volver a main

Terminal
git switch main

Mira hola.js: la despedida no está. Esa línea solo existe en la otra rama.

Juntar las ramas

Desde main, trae lo de la otra rama:

Terminal
git merge despedida
Terminal
Updating 7b1e0d4..9c2f5a8
Fast-forward
 hola.js | 1 +
 1 file changed, 1 insertion(+)

Ahora main tiene la despedida. La rama ya no hace falta:

Terminal
git branch -d despedida

Si las dos cambian lo mismo

Si las dos ramas cambiaron la misma línea, Git no sabe con cuál quedarse: es un conflicto. Marca el archivo con las dos versiones, tú dejas la buena, y haces add y commit. VS Code lo enseña con botones para elegir.

Pruébalo

Ejercicio

Crea una rama tabla-del-5, cambia tabla.js para que sea la tabla del 5, haz commit con un mensaje de la 2.5.2 y junta la rama con main.

Ver la solución
Terminal
git switch -c tabla-del-5
git add tabla.js
git commit -m "feat(tabla): cambia a la tabla del 5"
git switch main
git merge tabla-del-5
git branch -d tabla-del-5

Entre la primera línea y la segunda, cambia el 3 por el 5 en tabla.js y guarda.

En resumen

  • Una rama es una línea de trabajo aparte; la principal es main.
  • git switch -c nombre crea una rama y cambia a ella; git switch main vuelve.
  • git merge nombre trae a la rama actual lo de la otra.
  • Si las dos cambiaron la misma línea, hay conflicto y eliges tú.