Git Logo Banner 1024x535

Git para Novatos – Capítulo 7: Ramas

Capítulo 7: Ramas — Trabajá en varias cosas a la vez sin pisarte

Hasta ahora todo lo que hiciste fue sobre `main`. Un solo carril, un solo historial, un solo flujo. Para proyectos chicos puede alcanzar. Pero cuando necesitás probar algo nuevo, arreglar un bug urgente o trabajar con alguien más, necesitás ramas.

¿Qué es una rama?

Una rama es una línea de desarrollo independiente. Pensá en `main` como la autopista principal y las ramas como desvíos. Podés meterte en un desvío, experimentar, romper todo lo que quieras, y después volver a la autopista sin afectar a nadie.

Git hace que crear ramas sea tan barato que deberías usarlas para TODO.

Ver las ramas que existen

git branch

Te muestra:

* main

El asterisco marca en qué rama estás parado ahora.

Crear una rama nueva

Imaginá que querés agregar una sección de "Licencia" a tu proyecto pero no querés tocás `main` hasta que esté lista:

git branch feature/licencia

Creaste la rama, pero todavía estás en `main`. Para moverte a la nueva rama:

git checkout feature/licencia

O todo en uno:

git checkout -b feature/licencia

Este comando crea la rama y te mueve a ella inmediatamente. Es el que más vas a usar.

Trabajar en la rama

Ahora estás en `feature/licencia`. Todo lo que commiteés acá NO afecta a `main`. Probá:

echo "MIT License" > LICENSE
git add LICENSE
git commit -m "Agrego licencia MIT al proyecto"

Volver a main y ver la diferencia

git checkout main
ls -la

`LICENSE` no está. Está en `feature/licencia` pero `main` no lo tiene. Son dos mundos separados.

git checkout feature/licencia
ls -la

Ahora sí, `LICENSE` aparece. Cada rama tiene su propia foto del proyecto.

Ver todas las ramas

git branch
* feature/licencia
  main

¿Y si quiero ver los commits que tiene cada rama?

git log --oneline --all --graph

Te muestra algo como:

* a2b3c4d (feature/licencia) Agrego licencia MIT al proyecto
* a1b2c3d (HEAD -> main, origin/main) Primer commit: README inicial

Ves que `main` tiene un solo commit y `feature/licencia` tiene dos. El gráfico te da una vista de cómo se bifurcó el historial.

Regla de oro: main siempre funciona

Todo lo que esté en `main` tiene que compilar y funcionar. Las ramas son tu zona de experimentación. Rompé todo lo que quieras ahí. Nadie se va a enterar hasta que hagas un merge.

¿Qué nombre ponerle a la rama?

Convenciones útiles:

  • `feature/lo-que-sea` — para nuevas funcionalidades
  • `fix/lo-que-sea` — para correcciones de bugs
  • `refactor/lo-que-sea` — para cambios de estructura sin cambiar comportamiento
  • El prefijo ayuda a entender de qué se trata sin tener que preguntar.

    Resumen del capítulo:

  • `git branch` — ves las ramas
  • `git checkout -b nombre` — creás una rama y te movés (el más importante)
  • `git checkout nombre` — cambiás de rama
  • Trabajás tranquilo sin miedo a romper `main`
  • En el próximo capítulo: cuando terminás tu rama, la fusionás con main usando merge.

    Jose Antonio Alvarez Weingartt
    Scroll al inicio