Saltar al contenido
Curso Claude Code
44/57 Trabajo en paralelo Git worktrees con Claude Code para trabajar en paralelo
Tu lectura Quedan 25 min
Lección 44 de 57 · Trabajo en paralelo

Git worktrees con Claude Code para trabajar en paralelo

25 min de lectura Claude Code 2.1.295

Hola, bienvenido. En esta lección empezamos la sección de trabajo en paralelo, después de cerrar la de subagentes con nuestros 4 agentes. Vamos a darle a Claude su propia copia del proyecto con claude --worktree, para que implemente una feature sin tocar la carpeta en la que trabajas tú. Prepararemos el proyecto con .gitignore, worktree.baseRef y .worktreeinclude, implementaremos en el worktree un endpoint para actualizar el perfil del usuario, lo verificaremos, integraremos la rama y limpiaremos. Y para terminar veremos cómo crear worktrees a mano con Git.

En la lección de retomar y bifurcar sesiones vimos que bifurcar separa las conversaciones, pero las 2 sesiones siguen en la misma carpeta: editan los mismos archivos, sus diffs se mezclan y una puede pisar el trabajo de la otra sin que te des cuenta. Un worktree va un paso más allá y separa también los archivos, así que 2 sesiones pueden trabajar a la vez sin pisarse.

Además, en un proyecto Laravel con Sail un worktree tiene sus particularidades, que la documentación de Claude Code no cubre porque no sabe nada de tu stack. Un worktree no trae vendor/, ni el .env, ni contenedores propios, y eso afecta a lo que Claude puede hacer en el worktree y a los hooks que creamos en la sección de hooks. Esa parte, la que es propia de Sail, es la que más espacio ocupa en esta lección.

Para seguir esta lección necesitas el proyecto con los commits de las lecciones de subagentes y sin cambios pendientes, los contenedores de Sail levantados y 2 terminales abiertas en su raíz: una para Claude Code y otra para ti.

Qué es un worktree y qué crea claude --worktree

Un worktree de Git es otra carpeta de trabajo del mismo repositorio, con sus propios archivos y su propia rama, que comparte con tu copia principal el historial y la carpeta .git. Si cada sesión de Claude Code trabaja en su propio worktree, lo que edita una no toca los archivos de la otra, así que una sesión puede construir una feature mientras otra corrige un bug, y tú sigues en tu carpeta de siempre.

Claude Code lo crea por ti con la opción --worktree, o su forma corta -w, seguida de un nombre:

Terminal
claude --worktree profile

Ese comando crea la carpeta .claude/worktrees/profile/ dentro del repositorio, con una rama nueva que se llama worktree-profile, y abre la sesión de Claude ya dentro de esa carpeta. Si omites el nombre, Claude Code genera uno. Y si lo que quieres es partir de una pull request, puedes pasarle su número con # delante, entre comillas para que tu shell no lo lea como un comentario, como claude --worktree "#1234".

Un worktree, además, es un checkout limpio. Solo contiene lo que está en un commit de la rama de la que parte, así que ni los cambios que tengas sin confirmar en tu carpeta ni los archivos que ignora Git, como vendor/ o el .env, llegan a él. Casi todo lo que preparamos a continuación viene de ahí.

Lo que queda de esta lección
  1. 02Preparar el proyecto para los worktrees
  2. 03Qué funciona dentro del worktree y qué no
  3. 04Implementar la feature en el worktree
  4. 05Verificar el worktree desde la carpeta principal
  5. 06Integrar la rama y limpiar
  6. 07Worktrees a mano con Git
Sigue leyendo con tu suscripción El curso completo, con el certificado y el foro, está incluido en la suscripción. Ver los planes