Saltar al contenido principal

Git Worktrees y flujos de trabajo paralelos

Avanzado
What you'll learn
  • Qué es un git worktree — un repositorio, varios directorios de trabajo, cada uno en su propia rama
  • El problema exacto que resuelve: evitar que las sesiones paralelas de Claude colisionen sobre los mismos archivos
  • Los cuatro comandos para añadir, listar y eliminar worktrees
  • Cuándo merece la pena la técnica — y las tres trampas que muerden a la hora del merge
  • Cómo se combinan los worktrees con los subagentes: paralelismo entre sesiones frente a dentro de una sola

Un git worktree permite que un repositorio tenga varios directorios de trabajo, cada uno con una rama distinta. Combina eso con Claude Code y podrás ejecutar varias sesiones en paralelo sobre el mismo proyecto — cada una editando sus propios archivos, sin colisiones.

El problema que resuelve

Si dos sesiones de Claude editan el mismo directorio de trabajo a la vez, se pisan los cambios mutuamente. Los worktrees dan a cada sesión su propio directorio y rama, de modo que el trabajo paralelo se mantiene aislado hasta que haces el merge.

Lo básico

Cuatro comandos sostienen todo el flujo de trabajo: añadir un worktree (nuevo directorio + nueva rama), listar lo que existe y eliminar uno cuando hayas terminado.

Guided walkthrough1 of 4
  1. Desde tu repositorio, git worktree add ../app-feature-a -b feat-a crea un nuevo directorio Y una nueva rama de una sola vez.

El flujo de trabajo de cuatro comandos

# from your repo
git worktree add ../app-feature-a -b feat-a   # new dir + new branch
git worktree add ../app-fix-123 -b fix-123
git worktree list
# when done with one:
git worktree remove ../app-feature-a

Abre una sesión de Claude Code en el directorio de cada worktree y deja que trabajen de forma independiente.

Cuándo merece la pena

  • Funciones/correcciones paralelas que quieres avanzar a la vez.
  • Una tarea larga en ejecución en un worktree mientras sigues trabajando en otro.
  • Experimentos arriesgados aislados de tu checkout principal.

Trampas

Watch out
  • Cuidado con el merge de vuelta: las ramas acabarán fusionándose — los conflictos aparecen entonces, no durante. Mantén los worktrees enfocados y de corta vida.
  • No ejecutes recursos compartidos con estado (una BD de desarrollo, un puerto) desde dos worktrees sin separarlos.
  • Limpia con git worktree remove para que no se acumulen directorios obsoletos.

Worktrees frente a subagentes

Dos ejes distintos de paralelismo — no compiten, se apilan.

Qué paralelizaAislamiento
SubagentesTrabajo dentro de una sesión (delegación)Contexto aislado
WorktreesTrabajo entre sesiones en discoRamas/archivos aislados

Se combinan bien: una sesión en un worktree puede a su vez lanzar subagentes.

Pro tip
  • Usa un worktree cuando necesites dos sesiones de Claude tocando el mismo repositorio a la vez; usa un subagente cuando una sesión necesite descargar una parte del trabajo en un contexto aislado.

Ponte a prueba

0/4
  1. ¿Qué te da un git worktree?
  2. ¿Qué comando crea un nuevo directorio Y una nueva rama en un solo paso?
  3. ¿Cuándo aparecen realmente los conflictos de merge de los worktrees paralelos?
  4. ¿Cómo se relacionan los worktrees y los subagentes?
Key takeaways
  • Un git worktree = un repositorio, varios directorios de trabajo, cada uno en su propia rama — la base para sesiones paralelas de Claude sin colisiones.
  • Dos sesiones sobre un mismo directorio de trabajo se pisan; un worktree por sesión mantiene los archivos y las ramas aislados hasta que haces el merge.
  • git worktree add ../dir -b branch crea directorio + rama; list los muestra; remove limpia.
  • Merece la pena para funciones/correcciones paralelas, tareas de larga duración junto a otro trabajo y experimentos arriesgados aislados.
  • Cuidado con el merge de vuelta, no compartas recursos con estado (BD, puerto) entre worktrees y limpia siempre — y recuerda que los worktrees se combinan con los subagentes.

Siguiente