Las ramas: probar sin romper nada
En la primera lección te prometí que con Git podrías probar ideas sin miedo a estropear lo que ya funciona. Esa promesa se cumple aquí, con una de las cosas más potentes de Git: las ramas.
Escucha la lección
¿Qué es una rama?
Una rama es una versión paralela de tu proyecto donde puedes trabajar sin tocar la versión buena. Imagina que tu proyecto se divide en dos caminos: uno sigue intacto, y en el otro experimentas. Si tu experimento sale bien, juntas los dos caminos. Si sale mal, tiras ese camino y el original ni se entera.
Cuando creas un repositorio, ya tienes una rama: se llama main (o a veces master). Es la versión "oficial", la buena. Todo lo que has hecho hasta ahora vivía en main.
Crear una rama y moverte a ella
Para crear una rama nueva (por ejemplo, para probar un diseño):
git branch prueba-diseno
Eso la crea, pero todavía estás en main. Para moverte a la rama nueva:
git checkout prueba-diseno
Y hay un atajo que hace las dos cosas de golpe —crear la rama y saltar a ella—, que es el que más se usa:
git checkout -b prueba-diseno
Por convención, las ramas se nombran en minúscula y con guiones: prueba-diseno, arreglar-login, nueva-pagina. Un nombre que diga qué estás probando.
El día a día con ramas
Esta es la forma de trabajar que usa todo el mundo, y es muy sana:
- ›Vas a probar algo nuevo → creas una rama para ello.
- ›Trabajas ahí tranquilamente, haciendo tus commits, sin tocar
main. - ›¿Salió bien? La unes a
main(eso se llama merge, y es la próxima lección). - ›¿Salió mal? Borras la rama y tan tranquila.
mainsigue perfecta, como si nada.
La gran ventaja: tu versión buena (main) siempre está a salvo. Experimentas en una rama aparte, y solo lo bueno acaba llegando a la versión oficial.
Mientras estás en una rama, tus archivos cambian para mostrarte esa versión. Cuando vuelves a main con git checkout main, todo regresa a como estaba. Es como saltar entre universos paralelos de tu proyecto.
¿No programas? Te lo explico fácil · sin tecnicismos
Imagina que estás escribiendo un libro y ya tienes una versión que te gusta.
Un día piensas: "¿y si reescribo este capítulo de otra forma, más atrevida?". Pero te da miedo estropear lo que ya tenías bien.
Una rama es hacer una copia para experimentar: reescribes el capítulo en esa copia, sin tocar el libro original. Si la nueva versión te encanta, la incorporas al libro de verdad. Si no te convence, tiras la copia a la papelera y tu libro original sigue intacto, como si nunca hubieras probado nada.
Eso es una rama: un sitio seguro para probar, donde lo que sale mal no te cuesta nada y lo que sale bien te lo quedas.
Glosario
Rama (branch)
Línea de desarrollo independiente dentro de un repositorio. Permite trabajar en cambios aislados sin afectar a otras ramas.
Una versión paralela de tu proyecto para experimentar sin tocar la versión buena.
main (o master)
La rama principal del repositorio, donde suele estar la versión estable y oficial del proyecto.
La rama principal, la versión "oficial" y buena de tu proyecto.
git branch
Comando para crear, listar o borrar ramas. "git branch nombre" crea una rama nueva.
La orden para crear una rama nueva.
git checkout
Comando para cambiar de rama. Con la opción -b, crea la rama y se mueve a ella en un solo paso.
La orden para saltar de una rama a otra. Con "-b" además la crea de golpe.
