Avviare Claude in un worktree
Passate--worktree o -w per creare un worktree isolato e avviare Claude in esso. Per impostazione predefinita, il worktree viene creato sotto .claude/worktrees/<value>/ nella radice del vostro repository, su un nuovo branch denominato worktree-<value>:
WorktreeCreate. Eseguite il comando di nuovo con un nome diverso in un altro terminale per avviare una seconda sessione isolata:
bright-running-fox:
EnterWorktree. Una volta in un worktree, Claude può passare direttamente a un altro sotto .claude/worktrees/ chiamando EnterWorktree con il percorso di destinazione. Il worktree precedente rimane su disco intatto.
Prima di utilizzare --worktree in modo interattivo in una directory per la prima volta, accettate la finestra di dialogo di fiducia dell’area di lavoro eseguendo claude una volta in quella directory. Se la fiducia non è stata ancora accettata, --worktree esce con un errore e vi chiede di eseguire claude nella directory per primo. Le esecuzioni non interattive con -p saltano il controllo di fiducia, quindi claude -p --worktree procede senza di esso.
Scegliere il branch di base
I worktree si diramano dal branch predefinito del vostro repository,origin/HEAD, quindi iniziano da un albero pulito che corrisponde al remote. Se nessun remote è configurato o il fetch fallisce, il worktree ricade al vostro HEAD locale corrente. Per diramarvisi sempre dal HEAD locale, impostate worktree.baseRef a "head" nelle impostazioni. Impostare baseRef a "head" fa sì che i nuovi worktree portino i vostri commit non spinti e lo stato del feature-branch, il che è utile quando si isolano i subagent che devono operare su lavori in corso. L’impostazione accetta solo "fresh" o "head", non ref git arbitrari:
#, o un URL completo della pull request di GitHub. Claude Code recupera pull/<number>/head da origin e crea il worktree in .claude/worktrees/pr-<number>:
WorktreeCreate, che sostituisce completamente la logica predefinita di git worktree.
Copiare file gitignored nei worktrees
Un worktree è un checkout fresco, quindi i file non tracciati come.env o .env.local dal vostro repository principale non sono presenti. Per copiarli automaticamente quando Claude crea un worktree, aggiungete un file .worktreeinclude alla radice del vostro progetto.
Il file utilizza la sintassi .gitignore. Solo i file che corrispondono a un pattern e sono anche gitignored vengono copiati, quindi i file tracciati non vengono mai duplicati.
Questo .worktreeinclude copia due file env e una configurazione di segreti in ogni nuovo worktree:
.worktreeinclude
--worktree, worktree dei subagent, e sessioni parallele nell’app desktop.
Isolare i subagent con worktrees
I subagent possono eseguire nei propri worktree in modo che le modifiche parallele non entrino in conflitto. Chiedete a Claude di “usare worktree per i vostri agenti”, o impostatelo permanentemente su un subagent personalizzato aggiungendoisolation: worktree al frontmatter. Ogni subagent ottiene un worktree temporaneo che viene rimosso automaticamente quando il subagent finisce senza modifiche.
I worktree dei subagent utilizzano lo stesso ramo base di --worktree, quindi si diramano dal ramo predefinito del vostro repository a meno che worktree.baseRef non sia impostato su "head".
Pulire i worktrees
Quando uscite da una sessione di worktree, la pulizia dipende dal fatto che abbiate apportato modifiche:- Nessuna modifica non committata, nessun file non tracciato e nessun nuovo commit: il worktree e il suo branch vengono rimossi automaticamente. Se la sessione ha un nome, Claude vi chiede invece in modo da poter mantenere il worktree per dopo
- Modifiche non committate, file non tracciati o nuovi commit esistono: Claude vi chiede di mantenere o rimuovere il worktree. Mantenere preserva la directory e il branch in modo da poter tornare in seguito. Rimuovere elimina la directory del worktree e il suo branch, scartando tutte le modifiche non committate, i file non tracciati e i commit
- Esecuzioni non interattive: i worktree creati con
--worktreeinsieme a-pnon vengono puliti automaticamente poiché non c’è un prompt di uscita. Rimuoveteli congit worktree remove
cleanupPeriodDays, a condizione che non abbiano modifiche non committate, nessun file non tracciato e nessun commit non spinto. I worktree che create con --worktree non vengono mai rimossi da questa scansione.
Mentre un agente è in esecuzione, Claude esegue git worktree lock sul suo worktree in modo che la pulizia concorrente non possa rimuoverlo. Il blocco viene rilasciato quando l’agente termina. Per pulire un worktree che la scansione mantiene, eseguite git worktree remove, aggiungendo --force se il worktree ha modifiche non committate o file non tracciati.
Gestire i worktrees manualmente
Per il controllo completo sulla posizione del worktree e sulla configurazione del branch, create i worktree direttamente con Git. Questo è utile quando dovete controllare un branch esistente specifico o posizionare il worktree al di fuori del repository. Create un worktree su un nuovo branch:Controllo versione non-git
L’isolamento dei worktree utilizza git per impostazione predefinita. Per SVN, Perforce, Mercurial o altri sistemi, configurate gli hookWorktreeCreate e WorktreeRemove per fornire logica di creazione e pulizia personalizzata. Poiché l’hook sostituisce il comportamento predefinito di git, .worktreeinclude non viene elaborato quando utilizzate --worktree. Copiate i file di configurazione locali all’interno dello script dell’hook.
Questo hook WorktreeCreate legge il nome del worktree da stdin, controlla una copia di lavoro SVN fresca, e stampa il percorso della directory in modo che Claude Code possa usarlo come directory di lavoro della sessione:
WorktreeRemove per pulire quando la sessione termina. Vedere il riferimento degli hook per lo schema di input e un esempio di rimozione.
Vedere anche
I worktree gestiscono l’isolamento dei file. Le pagine correlate di seguito coprono la delega del lavoro in quei checkout isolati e il passaggio tra le sessioni che create:- Subagent: delegare il lavoro ad agenti isolati all’interno di una sessione
- Team di agenti: coordinare più sessioni di Claude automaticamente
- Gestire le sessioni: nominare, riprendere e passare tra conversazioni
- Sessioni parallele desktop: sessioni supportate da worktree nell’app desktop