Inicie Claude en un worktree
Pase--worktree o -w para crear un worktree aislado e iniciar Claude en él. De forma predeterminada, el worktree se crea bajo .claude/worktrees/<value>/ en la raíz de su repositorio, en una nueva rama llamada worktree-<value>:
WorktreeCreate. Ejecute el comando nuevamente con un nombre diferente en otra terminal para iniciar una segunda sesión aislada:
bright-running-fox:
EnterWorktree. Una vez en un worktree, Claude puede cambiar directamente a otro bajo .claude/worktrees/ llamando a EnterWorktree con la ruta de destino. El worktree anterior permanece en el disco sin cambios.
Antes de usar --worktree en un directorio por primera vez, acepte el diálogo de confianza del espacio de trabajo ejecutando claude una vez en ese directorio. Si la confianza aún no ha sido aceptada, --worktree sale con un error y le solicita que ejecute claude en el directorio primero, incluso cuando se combina con -p.
Elija la rama base
Los worktrees se ramifican desde la rama predeterminada de su repositorio,origin/HEAD, por lo que comienzan desde un árbol limpio que coincide con el remoto. Si no hay remoto configurado o la búsqueda falla, el worktree vuelve a su HEAD local actual. Para siempre ramificarse desde HEAD local en su lugar, establezca worktree.baseRef en "head" en configuración. Establecer baseRef en "head" hace que los nuevos worktrees lleven sus commits no enviados y estado de rama de característica, lo cual es útil cuando se aíslan subagentes que necesitan operar en trabajo en progreso. La configuración acepta solo "fresh" o "head", no refs de git arbitrarios:
#, o una URL completa de solicitud de extracción de GitHub. Claude Code obtiene pull/<number>/head de origin y crea el worktree en .claude/worktrees/pr-<number>:
WorktreeCreate, que reemplaza completamente la lógica predeterminada de git worktree.
Copie archivos ignorados por git en worktrees
Un worktree es un checkout fresco, por lo que archivos sin seguimiento como.env o .env.local de su repositorio principal no están presentes. Para copiarlos automáticamente cuando Claude crea un worktree, agregue un archivo .worktreeinclude a la raíz de su proyecto.
El archivo utiliza la sintaxis de .gitignore. Solo se copian los archivos que coinciden con un patrón y también están ignorados por git, por lo que los archivos rastreados nunca se duplican.
Este .worktreeinclude copia dos archivos env y una configuración de secretos en cada nuevo worktree:
.worktreeinclude
--worktree, worktrees de subagentes, y sesiones paralelas en la aplicación de escritorio.
Aisle subagentes con worktrees
Los subagentes pueden ejecutarse en sus propios worktrees para que las ediciones paralelas no entren en conflicto. Pida a Claude que “use worktrees para sus agentes”, o establézcalo permanentemente en un subagente personalizado agregandoisolation: worktree al frontmatter. Cada subagente obtiene un worktree temporal que se elimina automáticamente cuando el subagente termina sin cambios.
Los worktrees de subagentes utilizan la misma rama base que --worktree, por lo que se ramifican desde la rama predeterminada de su repositorio a menos que worktree.baseRef esté configurado en "head".
Limpie worktrees
Cuando sale de una sesión de worktree, la limpieza depende de si realizó cambios:- Sin cambios no confirmados, sin archivos sin seguimiento y sin nuevos commits: el worktree y su rama se eliminan automáticamente. Si la sesión tiene un nombre, Claude le solicita en su lugar para que pueda mantener el worktree para más tarde
- Existen cambios no confirmados, archivos sin seguimiento o nuevos commits: Claude le solicita que mantenga o elimine el worktree. Mantener preserva el directorio y la rama para que pueda regresar más tarde. Eliminar borra el directorio del worktree y su rama, descartando todos los cambios no confirmados, archivos sin seguimiento y commits
- Ejecuciones no interactivas: los worktrees creados con
--worktreejunto con-pno se limpian automáticamente ya que no hay solicitud de salida. Elimínelos congit worktree remove
cleanupPeriodDays, siempre que no tengan cambios no confirmados, archivos sin seguimiento ni commits no enviados. Los worktrees que crea con --worktree nunca se eliminan por este barrido.
Administre worktrees manualmente
Para control total sobre la ubicación del worktree y la configuración de rama, cree worktrees directamente con Git. Esto es útil cuando necesita verificar una rama existente específica o colocar el worktree fuera del repositorio. Cree un worktree en una nueva rama:Control de versiones no-git
El aislamiento de worktree usa git de forma predeterminada. Para SVN, Perforce, Mercurial u otros sistemas, configure hooksWorktreeCreate y WorktreeRemove para proporcionar lógica de creación y limpieza personalizada. Debido a que el hook reemplaza el comportamiento predeterminado de git, .worktreeinclude no se procesa cuando usa --worktree. Copie cualquier archivo de configuración local dentro de su script de hook en su lugar.
Este hook WorktreeCreate lee el nombre del worktree desde stdin, verifica una copia de trabajo fresca de SVN e imprime la ruta del directorio para que Claude Code pueda usarla como el directorio de trabajo de la sesión:
WorktreeRemove para limpiar cuando la sesión termina. Consulte la referencia de hooks para el esquema de entrada y un ejemplo de eliminación.
Véase también
Los worktrees manejan el aislamiento de archivos. Las páginas relacionadas a continuación cubren la delegación de trabajo en esos checkouts aislados y el cambio entre las sesiones que crea:- Subagentes: delegue trabajo a agentes aislados dentro de una sesión
- Equipos de agentes: coordine múltiples sesiones de Claude automáticamente
- Administrar sesiones: nombre, reanude y cambie entre conversaciones
- Sesiones paralelas de escritorio: sesiones respaldadas por worktree en la aplicación de escritorio