Quando vuoi che due (o più) agenti lavorino sullo stesso progetto contemporaneamente senza sovrapporsi alle modifiche reciproche, Git offre una soluzione per questo. Il trucco è usare branch e worktree in modo intelligente.
L'Idea Centrale: Git Unisce i Branch, Non le Cartelle
Git non unisce le cartelle; unisce i commit tra i branch. Ciò significa che tutti possono condividere la stessa struttura di progetto, lavorare sugli stessi file e comunque non intralciarsi a vicenda, purché lo facciano su branch diversi. Non sono necessarie più cartelle all'interno del repository. Ti servono solo un flusso di lavoro di branching pulito e disciplina. Mantieni una struttura di repository pulita, quindi crea un branch per il lavoro di ogni agente. Unisci quando pronto.
Imposta il Branch di Integrazione
Pensa al branch integration come all'hub centrale dove si riunisce il lavoro di tutti gli agenti. Lo crei una volta da main e lo usi come base comune per i branch di tutti.
git checkout main
git pull --ff-only
git checkout -b integration
git push -u origin integration
Questo branch funge da area di staging. Ogni agente creerà un branch da integration, svolgerà il proprio lavoro e lo unirà di nuovo in seguito. Mantiene il branch main pulito finché non sei pronto per il deploy o il rilascio.
Ogni Agente Lavora nel Proprio Branch
Ora, ogni agente crea un branch personale per svolgere il proprio lavoro. Questo mantiene la codebase unificata ma previene sovrascritture o caos di merge.
git checkout integration
git pull --ff-only
git checkout -b agent/agent1
# agent edits files as normal
git add -A
git commit -m "Agent1: added new logic"
git push -u origin agent/agent1
Ripeti questa operazione per agent/agent2 o per quanti agenti hai. Tutti lavorano indipendentemente ma nella stessa struttura logica del repository.
Unire Tutto: Effettuare il Merge degli Agenti
Una volta che gli agenti terminano i loro compiti, unisci il loro lavoro di nuovo in integration. È qui che entra in gioco la magia del merge di Git.
git checkout integration
git pull --ff-only
git merge --no-ff origin/agent/agent1
git merge --no-ff origin/agent/agent2
# resolve any conflicts if they appear
git push
Dopo aver verificato che tutto funzioni su integration, puoi unirlo di nuovo in main tramite una pull request o un merge diretto. In questo modo, main rimane sempre stabile e pulito.
Vero Lavoro Parallelo: Directory di Lavoro Separate
Anche se due agenti possono lavorare su branch diversi, non possono lavorare in sicurezza nella stessa directory nello stesso momento. Il filesystem stesso non consente a due processi di modificare e committare contemporaneamente nello stesso checkout senza rischi.
Per risolvere questo problema, hai due opzioni pulite:
Opzione A: Clone Separati
Ogni agente ha il proprio clone completo del repository. È semplice, sicuro e chiaro.
git clone git@yourrepo.git repo-agent1
git clone git@yourrepo.git repo-agent2
Opzione B: Git Worktrees
Se non vuoi duplicare l'intero repository, usa git worktree. Ti permette di creare più directory di lavoro legate agli stessi dati Git. Ogni agente ottiene una directory dedicata senza sprecare spazio.
git checkout integration
git worktree add ../repo-agent1 agent/agent1
git worktree add ../repo-agent2 agent/agent2
In questo modo, gli agenti possono lavorare veramente in parallelo in directory diverse, sullo stesso repository sottostante, senza conflitti.
Un albero Git può rappresentare più branch di agenti che si uniscono in un branch di integrazione prima di raggiungere main.
E Se Insisti su un Solo Branch?
Tecnicamente, puoi far lavorare tutti direttamente su un solo branch, ma è una lotta costante contro i conflitti di merge e i push rifiutati. Git ti fermerà ogni volta che qualcun altro ha effettuato un push dal tuo ultimo pull. Passeresti tempo a fare rebase e a risolvere conflitti invece di sviluppare.
git pull --rebase
# resolve conflicts
git push
È possibile, ma disordinato. Se mai dovessi provarci, dividi il lavoro per moduli o file in modo che gli agenti non modifichino le stesse righe. Tuttavia, è meglio usare i branch per la salute mentale.
Windsurf
All my projects and even this website is build using Windsurf Editor. Windsurf is the most intuitive AI coding experience, built to keep you and your team in flow.
Contattaci
If you need a developer who delivers fast, reliable, real-world solutions, reach out. Let’s turn your idea or project into something that works.