Più agenti nello stesso progetto: usare Git worktree
Neaptide · 20 settembre 2026 · 8 min di lettura
Separa i compiti degli agenti con Git worktree: cartelle, rami, ambienti, verifica e integrazione delle modifiche.
In questo articolo

Il lavoro parallelo diventa difficile quando due agenti modificano la stessa cartella. Uno corregge un modulo, l'altro riorganizza un componente e i test controllano un insieme di modifiche incomplete. Git worktree separa i file: ogni attività ottiene una propria cartella e un branch.
Un worktree è una copia di lavoro aggiuntiva dello stesso repository Git. La cronologia è condivisa, mentre il branch estratto e i file di lavoro sono separati. Si possono così sviluppare più modifiche contemporaneamente. Il manuale Git descrive funzionamento e comandi.
Quali attività svolgere in parallelo
Partite 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, concordate prima l'interfaccia e risolvete la dipendenza in sequenza.
| Attività adatte alla separazione | Ordine da stabilire prima |
|---|---|
| Correzione del modulo e documentazione | Modifica API e interfaccia che ne dipende |
| Test di moduli indipendenti | Due refactoring dello stesso componente |
| Analisi di un bug e modifica di testo separata | Migrazione dei dati e codice per il nuovo schema |
Le cartelle separate evitano di mescolare file incompleti, ma non risolvono contraddizioni funzionali. Due modifiche possono essere unite senza conflitti Git e comunque compromettere l'applicazione insieme.
Creare due copie di lavoro
L'esempio presuppone un repository esistente con almeno un commit. Eseguite i comandi dalla cartella principale. I nomi dei branch e delle cartelle adiacenti devono essere disponibili.
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 listEntrambe le copie partono dal commit HEAD corrente. Le modifiche non committate nella cartella originale non vengono trasferite. Se servono a entrambe le attività, preparate prima una versione di partenza concordata. Non committate il lavoro incompleto di altri soltanto per seguire l'esempio.
In due terminali distinti, aprite le nuove cartelle e avviate l'agente. Per Claude Code:
cd ../project-form
claudeNel secondo terminale aprite `../project-docs`. Claude Code offre anche un avvio diretto in worktree, descritto nella guida alle sessioni parallele. Il metodo manuale rende visibili cartelle e branch indipendentemente dal client.
Dare istruzioni a ciascun agente
Definite risultato e confini. 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.Assegnate al secondo la documentazione, chiedendo di non modificare il codice del modulo. Sono esempi didattici: usate percorsi, comandi e criteri effettivi del progetto.
Controllate l'ambiente di ogni copia. Dipendenze e configurazioni personali possono richiedere preparazione separata. Due server di sviluppo devono usare porte diverse. Se condividono il database di test, separate i dati oppure evitate scenari concorrenti che lo modificano.
Accettare il risultato
Esaminate ciascun diff separatamente: prima la conformità all'incarico, poi i test. Salvate le modifiche verificate con commit nei rispettivi branch.
Unite i branch uno alla volta nel branch di integrazione scelto. Dopo la seconda unione, verificate di nuovo il percorso utente complessivo. Test riusciti su due branch separati non dimostrano che le modifiche funzionino insieme.
Se emergono conflitti, stabilite quale comportamento preservare. Accettare meccanicamente tutte le modifiche di un lato può eliminare parte dell'altra attività.
Quando rimuovere il worktree
Verificate 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-docsSenza forzatura, Git rifiuta di rimuovere un normale worktree con modifiche non committate. Non aggiungete `--force` soltanto per eliminare l'errore. I branch rimangono dopo la rimozione delle copie: gestiteli separatamente. Comandi worktree.