Branches

Estos comandos permiten gestionar ramas (branches) y moverse entre ellas de forma controlada en Git.

Conceptos clave asociados

Branch
Línea independiente de desarrollo dentro del mismo proyecto.
HEAD
Apuntador a la rama actual.
Merge
Proceso de unir cambios de una rama a otra.

1. git branch

Permite crear, listar y eliminar ramas.

Listar ramas

git branch

Muestra todas las ramas locales. La rama actual se marca con *.

Crear una nueva rama

git branch nombre-rama
  • Crea la rama
  • No cambia automáticamente a ella

Ejemplo:

git branch feature-login

Eliminar una rama

git branch -d nombre-rama
  • Solo elimina si ya fue fusionada (merge)
  • Para forzar:
git branch -D nombre-rama

2. git checkout

Permite cambiar entre ramas o restaurar archivos.

Cambiar de rama

git checkout nombre-rama

Ejemplo:

git checkout feature-login

Restaurar archivo a versión anterior

git checkout -- archivo.txt
  • Revierte cambios no confirmados (no commit)

Este comando puede borrar cambios locales si no han sido guardados con commit.

3. git checkout -b

Forma rápida de:

  • Crear una rama
  • Cambiar a ella en un solo paso
git checkout -b nueva-rama

Ejemplo:

git checkout -b feature-carrito

Equivale a:

git branch feature-carrito
git checkout feature-carrito

4. git switch (alternativa moderna)

Git introdujo este comando para separar funciones de checkout.

Cambiar de rama

git switch nombre-rama

Crear y cambiar

git switch -c nueva-rama

git switch es más claro para estudiantes porque evita confusión con restauración de archivos.

5. Flujo completo usando estos comandos

git clone repositorio
git branch feature-login
git checkout feature-login

# editar archivos
git add .
git commit -m "Se agrega login"

git checkout main
git merge feature-login