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
git switch -c despedida
Switched to a new branch 'despedida'
-c la crea. git branch lista las ramas, con * en la actual:
git branch
* despedida
main
Trabajar en ella
Añade al final de hola.js:
console.log("Adiós");
Y guárdalo en un commit, como siempre:
git add hola.js
git commit -m "feat(saludo): añade la despedida"
Volver a main
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:
git merge despedida
Updating 7b1e0d4..9c2f5a8
Fast-forward
hola.js | 1 +
1 file changed, 1 insertion(+)
Ahora main tiene la despedida. La rama ya no hace falta:
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
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
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 nombrecrea una rama y cambia a ella;git switch mainvuelve.git merge nombretrae a la rama actual lo de la otra.- Si las dos cambiaron la misma línea, hay conflicto y eliges tú.