Vai al contenuto
GitTree

Agenti Git e AI

Alberi di lavoro Git per agenti AI: esegui Claude Code e Codex in parallelo

Un worktree git fornisce a ogni agente di codifica AI la propria cartella e ramo all'interno di un repository. Ecco come crearne uno per agente, tenerne traccia in una GUI Git e unire i risultati senza collisioni.

Scritto da KodmoraAggiornato 14 minuti di lettura
Terminale integrato ancorato sotto il grafico di commit in GitTree

Un git worktree è una cartella di lavoro aggiuntiva collegata allo stesso repository: ha il proprio ramo estratto, la propria area di staging e i propri file, mentre tutti gli alberi di lavoro condividono gli stessi commit, rami e remoti. Ciò rende git worktree il modo più semplice per eseguire agenti di codifica AI come Claude Code o Codex in parallelo. Assegna a ciascun agente il proprio albero di lavoro e potranno modificare, creare, testare e eseguire il commit allo stesso tempo senza toccare i file degli altri e senza un secondo clone.

Due agenti in una cartella condividono un albero di lavoro: uno esegue test sui file, l'altro è a metà della riscrittura e un git checkout di uno dei due sposta il terreno sotto l'altro. I cloni separati lo evitano ma necessitano dei propri recuperi; worktrees ti offre cartelle separate con la contabilità di un repository.

Cos'è un albero di lavoro git e cosa condividono gli alberi di lavoro

Ogni repository inizia con un albero di lavoro, il albero di lavoro principale: la cartella creata da git clone o git init. git worktree add crea alberi di lavoro collegati, cartelle aggiuntive allegate agli stessi dati .git. Secondo la documentazione ufficiale di git worktree, un albero di lavoro collegato condivide tutto con il repository tranne i file per albero di lavoro come HEAD e l'indice. In pratica:

Ciò che ogni albero di lavoro tiene per sé e ciò che condividono tutti gli alberi di lavoro
Parte del depositoCopia propria o condivisa?Cosa significa per gli agenti paralleli
File di lavoroPropria copiaLe modifiche di un agente non sovrascrivono mai i file di un altro
HEAD e la filiale in check-outPropria copiaOgni agente rimane nella propria filiale
Indice (area di sosta)Propria copiaUn git add in un albero di lavoro non mette in scena nulla in un altro
Impegni e oggettiCondivisoUn commit effettuato in qualsiasi albero di lavoro è visibile in tutti loro
Rami e tagCondivisoPuoi unire il ramo di un agente dalla tua cartella principale senza recupero
Configurazione dell'archivioCondiviso per impostazione predefinitaRemoti e alias si applicano a ogni albero di lavoro

Una regola è importante per gli agenti: per impostazione predefinita, git worktree add rifiuta di effettuare il check-out di un ramo che è già stato eseguito in un altro albero di lavoro. Ogni agente ha quindi bisogno di una propria filiale, che è esattamente ciò che desideri al momento della revisione.

Come creare un albero di lavoro con git worktree add

Esegui i comandi dall'interno del tuo repository e inserisci nuovi alberi di lavoro accanto anziché al suo interno, in modo che editor, strumenti di ricerca e agenti non indicizzino un checkout dall'interno di un altro. Questo crea due alberi di lavoro, ciascuno su un nuovo ramo che inizia alle main:

cd ~/code/myapp
git worktree add -b agent/auth-refactor ../myapp-auth main
git worktree add -b agent/flaky-tests ../myapp-tests main
git worktree list

-b crea il ramo, il percorso è la nuova cartella e l'ultimo argomento è il commit da cui iniziare. git worktree list stampa ogni albero di lavoro con la sua cartella, commit e ramo. Per utilizzare un ramo già esistente, tralascia -b: git worktree add ../myapp-review feature/login.

Un agente AI per albero di lavoro: il flusso di lavoro parallelo

Lo schema è semplice: un'attività, un ramo, un albero di lavoro, una sessione dell'agente. Rimani nell'albero di lavoro principale come revisore e gli agenti non condividono mai una cartella. Ciò che conta di più è come dividi il lavoro. Buoni compiti paralleli sono:

  • In diverse parti del codice, come un refactoring in auth/ e nuovi test in billing/, quindi i loro rami raramente toccano le stesse righe.
  • Chiaramente fatto o non fatto: un test fallito che dovrebbe passare, un endpoint da aggiungere, una dipendenza da aggiornare.
  • Abbastanza piccolo da poter essere rivisto in una sola seduta. Un'enorme differenza tra agenti è un problema di revisione, indipendentemente dalla cartella da cui proviene.

Come eseguire agenti di codifica AI in parallelo con git worktrees

  1. Impegna o nascondi il tuo lavoro attuale

    I nuovi alberi di lavoro iniziano da un commit e le modifiche non confermate nella cartella principale rimangono indietro, quindi ogni agente dovrebbe iniziare dallo stesso stato confermato.

  2. Crea un albero di lavoro per attività

    Esegui git worktree add -b agent/<task> ../<repo>-<task> main una volta per attività o crea gli alberi di lavoro da una GUI Git.

  3. Prepara ogni cartella

    Installa le dipendenze, copia i file di ambiente necessari al progetto ed esegui la compilazione una volta, in modo che ogni agente inizi da un checkout che funzioni.

  4. Avvia un agente in ciascuna cartella

    Apri un terminale per albero di lavoro e avvia lì il tuo agente, ad esempio claude in uno e codex in un altro, ciascuno con un prompt ristretto che nomina l'area di sua proprietà.

  5. Rivedi, unisci e ripulisci

    Quando un agente termina, leggi il suo diff, unisci il suo ramo dal tuo albero di lavoro principale, quindi rimuovi l'albero di lavoro ed elimina il ramo.

cd ../myapp-auth && claude
cd ../myapp-tests && codex

Esegui ciascuna riga nel proprio terminale; i test e le build di ciascun agente vengono quindi eseguiti sui propri file.

Utilizzo degli alberi di lavoro Git con Claude Code

Per dare a Claude Code il proprio albero di lavoro manualmente, crea l'albero di lavoro con Git semplice e inizia claude al suo interno; l'agente quindi legge e modifica solo quella cartella ed effettua il commit su quel ramo:

git worktree add ../myapp-auth -b agent/auth
cd ../myapp-auth
claude

Il flag --worktree di Claude Code

Claude Code può creare l'albero di lavoro per te. Secondo la documentazione dell'albero di lavoro di Claude Code, claude --worktree feature-auth (o -w) crea un albero di lavoro sotto .claude/worktrees/feature-auth/ su un nuovo ramo denominato worktree-feature-auth, ramificato dal ramo predefinito del repository a meno che l'impostazione worktree.baseRef non indichi diversamente. Un file .worktreeinclude copia i file ignorati come .env in ogni nuovo albero di lavoro. All'uscita, Claude Code rimuove un albero di lavoro pulito e il suo ramo da una sessione senza nome e chiede prima di rimuoverne uno con modifiche o nuovi commit.

claude --worktree feature-auth

Utilizzo degli alberi di lavoro Git con la CLI del Codex

La CLI del Codex funziona nella directory da cui la avvii, quindi un albero di lavoro per sessione del Codex mantiene separate le modifiche, i test e i commit di ogni sessione:

git worktree add ../myapp-tests -b agent/tests
cd ../myapp-tests
codex

L'app Codex e la CLI Codex

La documentazione dell'albero di lavoro dell'app Codex di OpenAI descrive gli alberi di lavoro che consentono a Codex di eseguire diverse chat in un unico progetto. Per impostazione predefinita vanno in $CODEX_HOME/worktrees, in base a un ramo scelto, e iniziano in uno stato HEAD distaccato anziché su un ramo. Nell'intestazione della chat, Hand off sposta una chat tra un albero di lavoro e il checkout locale e Crea ramo qui trasforma il lavoro di un albero di lavoro in un ramo che puoi rivedere e unire. Con la CLI del Codex, esegui codex da una directory di progetto, quindi avvialo all'interno dell'albero di lavoro che hai creato.

In ogni caso, questi sono normali alberi di lavoro Git, visibili a git worktree list e a qualsiasi GUI Git che lo legga.

Una GUI git worktree: tracciamento della cartella e del ramo di ogni agente

Con tre o quattro agenti in esecuzione, la parte difficile è tenere traccia di quale ramo si trova in quale cartella e quale agente sta ancora modificando i file. GitTree, il client Git per macOS, Windows e Linux che pubblica questo blog (repository privati ​​inclusi), legge gli alberi di lavoro che Git già conosce, inclusi quelli creati da Claude Code o Codex, e assegna a ciascuno un posto nell'interfaccia.

In GitTree, la sezione ALBERI DI LAVORO del pannello di sinistra elenca tutti gli alberi di lavoro e il menu del ramo offre Crea albero di lavoro per questo ramo.
In GitTree, la sezione ALBERI DI LAVORO del pannello di sinistra elenca tutti gli alberi di lavoro e il menu del ramo offre Crea albero di lavoro per questo ramo.
  • Una sezione ALBERI DI LAVORO nel pannello di sinistra. Ogni albero di lavoro, prima quello principale, denominato dal suo ramo (o dalla sua cartella quando staccato), con un segno di spunta su quello aperto in questa scheda. Gli alberi di lavoro bloccati, staccati e mancanti sono etichettati.
  • Alberi di lavoro fratelli sui suggerimenti dei rami. Il grafico dei commit contrassegna ogni altro albero di lavoro sui suggerimenti dei rami con il numero di modifiche conservate, un modo rapido per vedere quali agenti stanno ancora modificando. Facendo clic sull'indicatore si apre la scheda dell'albero di lavoro.
  • Crea un albero di lavoro da dove ti trovi. Crea albero di lavoro… nella palette dei comandi o Crea albero di lavoro da questo commit… su un commit ti consente di scegliere un nuovo ramo o un checkout separato, quindi la cartella; Crea albero di lavoro per questo ramo… su un ramo controlla quel ramo nella nuova cartella.
  • Una scheda per albero di lavoro, con il proprio terminale. Apri albero di lavoro in una nuova scheda lo apre come qualsiasi repository e il terminale integrato sotto il grafico inizia nella cartella di quell'albero di lavoro con la tua shell, quindi puoi avviare claude o codex proprio da lì.
  • Blocca, sposta, rimuovi, sfoltisci e ripara. Blocca con un motivo facoltativo, sposta una cartella o rimuovila. Git si rifiuta di rimuovere un albero di lavoro con modifiche non confermate e il ramo rimane. Prune Stale Worktrees visualizza in anteprima ciò che Git eliminerebbe e Repair Worktree Links, eseguito da un albero di lavoro spostato manualmente, lo riconnette.

Ogni azione esegue Git che hai già installato, quindi il risultato corrisponde alla riga di comando:

comandi git worktree e i loro equivalenti GitTree
CompitoRiga di comandoTra GitTree
Creagit worktree add -b <branch> <path> <start>Crea albero di lavoro... (palette dei comandi, menu commit o ramo)
Elencogit worktree listSezione WORKTREES e marcatori sulle punte dei rami
Apertocd <path>Apri Worktree in una nuova scheda
Bloccaregit worktree lock --reason "<text>" <path>Blocca Worktree… (motivo facoltativo)
Muovitigit worktree move <path> <new-path>Sposta albero di lavoro...
Rimuovigit worktree remove <path>Rimuovi Worktree…
Potaregit worktree pruneElimina gli alberi di lavoro obsoleti… (con un'anteprima)
Riparazionegit worktree repairRiparare i collegamenti dell'albero di lavoro

La GitTree pagina delle funzionalità elenca tutto ciò che fa l'app e Git GUI e riga di comando spiega quando ciascun approccio è più veloce.

Unire il lavoro di diversi agenti IA

Poiché i rami sono condivisi, il tuo albero di lavoro principale vede il ramo di ogni agente nel momento in cui l'agente effettua il commit. Tratta ognuno di essi come una richiesta pull di un compagno di squadra: attendibile, ma rivisto.

  1. Leggi prima la differenza. Confronta il ramo dell'agente con main pezzo per pezzo e cerca modifiche non correlate, test eliminati e nuove dipendenze.
  2. Verifica la sovrapposizione. GitTree prevede i conflitti prima di un'unione, avvisa accanto al nome di un ramo quando potrebbe entrare in conflitto con main e suggerisce quando altri rami non uniti toccano gli stessi file, tutti calcolati sul tuo computer. Con diversi rami dell'agente, ciò mostra quale ordine di fusione fa meno male.
  3. Riordina la cronologia. Il checkpoint di Squash si impegna con un rebase interattivo in una GUI, all'interno dell'albero di lavoro di quell'agente: Git non effettuerà il checkout di un ramo che è stato estratto in un'altra cartella.
  4. Unisci o apri una richiesta pull. Unisci dal tuo albero di lavoro principale o trascina il ramo dell'agente su main in GitTree per unire, riorganizzare o avviare una richiesta pull.
  5. Mantieniti indietro. Se due agenti hanno modificato le stesse righe, vedi come risolvere i conflitti di unione Git; se un'unione va male, puoi annullare un'unione, reimpostare o reimpostare.
  6. Pulisci. Rimuovi l'albero di lavoro, quindi elimina il ramo unito.
git switch main
git merge --no-ff agent/auth-refactor
git worktree remove ../myapp-auth
git branch -d agent/auth-refactor

Insidie di Git Worktree con agenti di codifica AI

  • Forzare un ramo in due alberi di lavoro. --force aggira il rifiuto di Git al costo di due cartelle in conflitto per un ramo. Apri invece l'albero di lavoro esistente; GitTree ti dice dove è stato effettuato il check-out di quel ramo.
  • Supponendo che gli alberi di lavoro isolino tutto. Isolano i file, non i servizi. Gli agenti che avviano i server di sviluppo sulla stessa porta o migrano lo stesso database locale continuano a entrare in conflitto, quindi assegna a ciascun albero di lavoro la propria porta e il proprio database di test.
  • Eliminazione o spostamento di cartelle manualmente. Git tiene traccia di ogni albero di lavoro. Il record di una cartella eliminata permane finché git worktree prune (o, molto più tardi, la pulizia automatica di Git) la rimuove; git worktree repair, esegui all'interno di una cartella che hai spostato, la ricollega. Blocca gli alberi di lavoro sulle unità che non sono sempre montate in modo che la potatura li lasci in pace.
  • Rimozione forzata del lavoro non revisionato. git worktree remove rifiuta un albero di lavoro con modifiche a meno che tu non aggiunga --force, quindi leggi prima la differenza. Le esecuzioni -p non interattive di Claude Code lasciano i loro alberi di lavoro bloccati fino a quando una sessione successiva non li rilascia; sbloccane uno prima di rimuoverlo tu stesso.
  • Chiusura della scheda che esegue l'agente. In GitTree, il terminale integrato appartiene alla relativa scheda del repository e la chiusura della scheda interrompe le sessioni del terminale, incluso un agente in esecuzione in una.
  • Gestire più agenti di quelli che puoi revisionare. La revisione è il vero collo di bottiglia. Inizia con due o tre attività parallele e aggiungine altre una volta che unirle diventa una routine.

Prova Worktrees per la tua prossima attività

I comandi dell'albero di lavoro di Git sono tutto ciò che ti serve per iniziare e una GUI semplifica la visualizzazione di diversi alberi di lavoro. GitTree ha un piano gratuito su macOS, Windows e Linux che copre tutte le funzionalità Git, repository privati ​​inclusi, e Nour, l'assistente AI, viene fornito con GitTree Pro. Ogni funzionalità Git è disponibile nel piano gratuito una volta effettuato l'accesso e richiede Git 2.39 o versione successiva; su Ubuntu 22.04, aggiorna Git su Ubuntu prima. Segui la Linux guida all'installazione o visita la GitTree pagina di download.

Domande frequenti

Qual è la differenza tra git worktree e git clone?

Un clone copia l'intero repository in una nuova cartella con il proprio database di oggetti, quindi i suoi rami e commit raggiungono un altro clone solo tramite push e fetch. Un worktree è una cartella aggiuntiva dello stesso repository: commit e rami sono condivisi contemporaneamente, mentre ogni cartella mantiene i propri file, ramo e area di staging.

Due alberi di lavoro git possono avere lo stesso ramo estratto?

Non per impostazione predefinita. Git si rifiuta di creare un albero di lavoro per un ramo che è già stato estratto in un altro albero di lavoro, ed è meglio lasciare intatta l'opzione di forzatura che lo sovrascrive. Assegna a ogni albero di lavoro, e quindi a ogni agente AI, il proprio ramo, creato dallo stesso commit se hanno bisogno dello stesso punto di partenza.

Claude Code supporta git worktrees?

SÌ. La documentazione di Claude Code descrive un flag --worktree, o -w in breve, che crea un albero di lavoro sotto .claude/worktrees su un nuovo ramo e avvia la sessione al suo interno. Puoi anche creare un albero di lavoro con git worktree add, spostarti nella sua cartella e avviare lì Claude Code, che funziona allo stesso modo per Codex.

Come posso eliminare un worktree git in modo sicuro?

Esegui git worktreeremove con il percorso della cartella. Git rifiuta mentre l'albero di lavoro ha modifiche non salvate o file non tracciati, quindi rivedili o confermali prima e usa l'opzione di forzatura solo quando sei sicuro. Il ramo viene mantenuto, quindi eliminalo separatamente una volta unito. Se hai eliminato la cartella manualmente, git worktree prune cancella il record rimanente.

Git worktrees condivide node_modules, .env o crea file?

No. Un nuovo albero di lavoro contiene solo i file tracciati da Git. Le dipendenze installate, i file di ambiente e l'output della build rimangono nella cartella in cui sono stati creati, quindi ogni albero di lavoro necessita della propria installazione e della propria copia della configurazione locale. Per gli alberi di lavoro che crea, Claude Code può copiare i file ignorati scelti tramite un file .worktreeinclude.

Qual è il miglior gestore git worktree con una GUI?

Cerca un client che elenchi ogni albero di lavoro, mostri il ramo di ciascuno e se contiene modifiche e possa aggiungere, bloccare, spostare, rimuovere, sfoltire e riparare alberi di lavoro senza il terminale. GitTree, disponibile su macOS, Windows e Linux, fa tutto questo e contrassegna gli alberi di lavoro fratelli sui suggerimenti dei rami nel grafico dei commit.

GitTree avvia gli agenti AI in Worktrees per me?

No. GitTree gestisce gli alberi di lavoro e assegna a ciascuno la propria scheda, con un terminale integrato che inizia nella cartella di quell'albero di lavoro, dove avvii tu stesso Claude Code, Codex o un altro agente. Separatamente, GitTree può redigere messaggi di commit ed estrarre descrizioni di richieste tramite il tuo codice Claude, Codex o CLI Antigravity quando fai clic su Genera.

Fonti

Le affermazioni su altri prodotti sono state confrontate con le rispettive pagine ufficiali in data 22 ottobre 2026. Cambiano prezzi e caratteristiche; le pagine dei venditori sono la fonte della verità.