Pular para o conteúdo principal
Últimos Posts do Blog

Git Worktree: Cómo trabajar en varias ramas a la vez (y jubilar al `git stash`)

AM

Arthur Marcel

Founder & AI Consultant

Português

Buenas ! Mira... Si eres dev, ya conoces la historia: estás a mitad de una feature compleja y de pronto aparece un bug crítico en producción. ¿ Qué haces ? Lo de siempre: git stash, cambias de rama, rezas para que el entorno no explote y luego intentas recordar qué estabas haciendo. Pero, ¿ y si pudieras simplemente abrir otra carpeta y tener esa nueva rama corriendo en paralelo usando el mismo repositorio ?

Eso es precisamente lo que hace Git Worktree. En lugar de tener un solo directorio de trabajo, te permite tener múltiples "árboles" vinculados a una única base de datos de objetos. Básicamente, ahorras espacio en disco y te saltas ese costo cognitivo—esos 23 minutos que perdemos al intentar recuperar el foco—de andar cambiando de contexto en la misma carpeta.

Lo increíble está en la arquitectura: Git mantiene un repositorio principal y crea instancias vinculadas. La base de datos de commits se comparte mediante $GIT_COMMON_DIR, pero cada carpeta tiene su propio HEAD y su propia área de staging. Así, lo que agregas con git add en una carpeta no ensucia la otra. ¡ Funciona !

Ojo con la "regla de oro": no puedes tener la misma rama activa en dos carpetas al mismo tiempo. Git bloquea esto para evitar que los punteros se vuelvan locos y pierdas código. Si necesitas revisar el mismo historial en dos lugares, lo mejor es usar el modo Detached HEAD o crear una rama temporal.

Para los que buscan un flujo de "primer nivel", mi consejo es usar la topología Bare. Clonas el repo con --bare (un hub central sin archivos visibles) y de ahí derivas tus worktrees a carpetas laterales (ej: una carpeta /main y otra /fix-urgente). Esto mantiene todo súper organizado y evita que el .gitignore se llene de rutas raras.

Incluso si estás probando Agentes de IA como Claude Code, el worktree es un superpoder. Puedes poner a un agente a refactorizar en una carpeta mientras tú programas la lógica en otra, sin que sus cambios choquen entre sí. Jeje, la productividad se dispara.

Para terminar, no olvides el mantenimiento. Si borras una carpeta a mano, usa git worktree prune para limpiar las referencias "fantasma" en la base de datos. Y si usas submódulos, ten cuidado: la integración todavía es algo inestable y puede duplicar archivos de forma innecesaria.

¿ Te animas a probarlo ? Lanza esto en tu terminal: git worktree add ../fix-rapido main. ¡ Vas a ver lo bien que se siente dejar de usar el stash para todo !

Fuentes:

  • Documentación oficial de Git (git-scm.com).
  • "Git Worktree: Managing Multiple Working Directories" - Meziantou's blog.
  • "Working with Git Worktrees: Your Secret Weapon" - Medium.
AM

Sobre o Autor

Arthur Marcel é founder da AMS tech com 25+ anos de experiência atuando na interseção entre tecnologia, produto e negócios. Sua visão 360° conecta soluções técnicas com objetivos claros de negócio, priorizando sempre o princípio de safety-first em projetos de IA e automação.

Conectar no LinkedIn