Salta al contenuto
Neaptidestudio
blog

Più agenti nello stesso progetto: usare Git worktree

Neaptide · 20 settembre 2026 · 8 min di lettura · Aggiornato: 3 ottobre 2026

Separa i compiti degli agenti con Git worktree: cartelle, rami, ambienti, verifica e integrazione delle modifiche.

In questo articolo
Due spazi di lavoro sui rami dello stesso progetto.

Due agenti che modificano la stessa cartella di lavoro si intralciano. Uno corregge un modulo, l'altro riorganizza un componente e i test girano su un miscuglio di modifiche lasciate a metà. Git worktree separa i file e assegna a ogni attività una cartella e un branch propri.

Un worktree è una copia di lavoro aggiuntiva dello stesso repository Git. La cronologia è comune, ma ogni copia ha il suo branch estratto e i suoi file di lavoro, quindi puoi portare avanti più modifiche insieme. Il manuale Git ne descrive il funzionamento e i comandi.

Quali attività svolgere in parallelo

Parti da due modifiche indipendenti: correggere la gestione degli errori di un modulo e aggiornare un testo di aiuto. Se entrambe toccano uno schema dati o un componente condiviso, concorda prima l'interfaccia e svolgi la parte dipendente in sequenza.

Attività adatte alla separazione
Attività adatte alla separazioneOrdine da stabilire prima
Correzione del modulo e documentazioneModifica API e interfaccia che ne dipende
Test di moduli indipendentiDue refactoring dello stesso componente
Analisi di un bug e modifica di testo separataMigrazione dei dati e codice per il nuovo schema

Le cartelle separate impediscono ai file incompleti di mescolarsi. Le contraddizioni funzionali restano: due modifiche possono essere unite senza un solo conflitto Git e, messe insieme, rompere comunque l'applicazione.

Creare due copie di lavoro

L'esempio parte da un repository che ha già almeno un commit. Esegui i comandi dalla sua cartella principale. Non devono esistere ancora branch o cartelle vicine con quei nomi.

git status --short
git worktree add -b ai/form-fix ../project-form HEAD
git worktree add -b ai/docs-update ../project-docs HEAD
git worktree list

Entrambe le copie partono dal commit HEAD corrente. Le modifiche non committate nella cartella originale non vengono trasferite. Se servono a entrambe le attività, prepara prima una versione di partenza concordata. Non committare il lavoro incompleto di altri soltanto per seguire l'esempio.

In due terminali distinti, apri le nuove cartelle e avvia l'agente. Per Claude Code:

cd ../project-form
claude

Nel secondo terminale apri `../project-docs`. Claude Code sa anche creare la copia da solo: `claude --worktree <nome>` la mette in `.claude/worktrees/`, dentro il repository. I dettagli sono nella guida alle sessioni parallele. Il metodo manuale ha un vantaggio: cartelle e branch restano visibili con qualsiasi client.

Dare istruzioni a ciascun agente

Definisci risultato e ambito del lavoro. Per il primo agente:

Correggi il messaggio di errore dell'invio del modulo nel worktree corrente. Individua il modulo e i relativi test, preservando l'invio riuscito. Non modificare la struttura dell'API o la documentazione. Mostra il diff e i risultati delle verifiche. Non unire i branch.

Al secondo affida la documentazione e chiedi espressamente di non toccare il codice del modulo. Sono incarichi di esempio. Usa i percorsi, i comandi e i criteri reali del tuo progetto.

Controlla l'ambiente di ogni copia. Con ogni probabilità dovrai reinstallare le dipendenze e copiare a mano i file di configurazione personali che Git non traccia (`.env`, per esempio). Due server di sviluppo devono usare porte diverse. Se condividono il database di test, separa i dati oppure evita di eseguire nello stesso momento scenari che lo modificano.

Accettare il risultato

Esamina ciascun diff per conto suo. Prima confrontalo con l'incarico, poi guarda i test. Fai il commit delle modifiche verificate, ognuna nel proprio branch.

Unisci i branch uno alla volta nel branch di integrazione scelto. Dopo la seconda unione, verifica di nuovo il percorso utente complessivo. Test riusciti su due branch separati non dimostrano che le modifiche funzionino insieme.

Se emergono conflitti, stabilisci prima quale comportamento deve restare. Non chiedere all'agente di accettare meccanicamente tutte le modifiche di un lato: è il modo più facile per perdere un pezzo dell'altra attività.

Quando rimuovere il worktree

Verifica che le modifiche utili siano salvate e accettate e che non restino file non salvati. Dalla copia principale:

git worktree remove ../project-form
git worktree remove ../project-docs

Senza `--force`, Git rifiuta di rimuovere un worktree che contiene ancora modifiche non committate o file non tracciati. Non aggiungere l'opzione soltanto per far sparire l'errore. I branch restano dopo la rimozione delle copie. Che cosa farne si decide a parte.

faq

L'essenziale in breve

Il worktree protegge da qualsiasi azione di un altro agente?

No. Un worktree si limita a tenere le copie di lavoro in cartelle distinte, non crea una macchina virtuale isolata. Servizi condivisi, risorse della macchina e percorsi accessibili richiedono controlli propri.

Quanti agenti avviare insieme?

Inizia con due. Se le modifiche arrivano più in fretta di quanto riesci a rivederle, un terzo agente allunga soltanto la coda di revisione. Misura il tempo fino al risultato accettato. Il numero di sessioni aperte non dice nulla.

Dove mettere le regole comuni?

Conserva le istruzioni del team nel repository, per esempio in CLAUDE.md (/it/blog/claude-md-guide). Le nuove copie riceveranno la versione presente nel commit iniziale.