Git worktrees ir Claude Code: kaip dirbti su 5 agentais vienu metu (gilus nardymas)
„Claude Code meistriškumo” cikle worktree’us pavadinome didžiausiu produktyvumo šuoliu — ir tai ne perdėta. Būtent worktree’ai leidžia laikyti atvirus 3–5 Claude vienu metu ir kiekvienam patikėti atskirą užduotį. Šis gilus nardymas — viskas, ką reikia žinoti nuo nulio iki pažengusio lygio.
Susiję: Claude Code meistriškumas (1/3): pagrindai · (2/3): technikos
Kas yra git worktree (ir kodėl ne tiesiog kelios kopijos)
Įprastai vienas git repozitorijus turi vieną darbinį katalogą — vieną failų rinkinį,
vieną aktyvią šaką. Nori dirbti su kita šaka? Turi „persijungti” (git checkout), o tai
reiškia, kad ankstesnis darbas iš akių dingsta.
Worktree — tai antras (trečias, penktas) darbinis katalogas, priklausantis tam pačiam
repozitorijui. Kiekvienas turi savo šaką ir savo failus, bet visi dalijasi ta pačia git
istorija. Skirtingai nei paprastas kopijavimas (cp -r ar antras git clone), worktree’ai:
- nesidubliuoja — dalijasi objektų baze, todėl užima mažai vietos;
- žino vienas apie kitą — negali dviejuose worktree’uose atsidaryti tos pačios šakos;
- tvarkomi per
git— sukūrimas, sąrašas ir išvalymas viena komanda.
Praktiškai tai reiškia: penkios izoliuotos darbo vietos, viena istorija, jokių konfliktų.
repozitorijus
- auth-refactor dirba
- klaida-102 laukia įvesties
- nauja-funkcija dirba
- analizė baigta
Kodėl tai svarbu būtent Claude Code
Kai dirbi su vienu Claude langu, esi „butelio kaklelis” — kol jis dirba, tu lauki. Kai kiekviena užduotis turi savo worktree ir savo Claude sesiją, viskas sukasi lygiagrečiai: vienas taiso klaidą, antras rašo funkciją, trečias — testus. Tu tik peršoki prie to, kuriam šiuo metu reikia dėmesio.
Svarbiausia — sesijos nesikiša viena kitai. Kiekviena redaguoja savo failus savame kataloge, tad du Claude niekada nesugadins vienas kito darbo tuo pačiu metu.
1. Rankinis būdas — git worktree add
Baziniam supratimui verta bent kartą tai padaryti ranka. Susikuri worktree’ą iš main šakos
ir jame paleidi Claude:
Įprasta susitarta vieta — .claude/worktrees/. Norint pamatyti visus esamus arba išvalyti
nebereikalingus:
2. Įmontuotas palaikymas — --worktree vėliava
Rankinis būdas geras suprasti, bet kasdien to nereikia. Claude Code turi įmontuotą
worktree palaikymą — --worktree vėliava pati sukuria izoliuotą worktree ir jame paleidžia
sesiją:
Vardą gali nurodyti pats arba leisti Claude sugalvoti automatiškai. Rezultatas tas pats — kelios lygiagrečios sesijos tame pačiame repozitorijuje be jokios trinties.
Desktop programoje dar paprasčiau: atidaryk Code skiltį ir pažymėk „worktree” langelį — nauja sesija automatiškai gaus savo izoliuotą darbo vietą.
3. Greitkeliai — aliasai ir sesijų vardai
Komandos, kurios tai naudoja kasdien, susikuria trumpus shell aliasus, kad tarp worktree’ų peršoktų vienu klavišu:
Kai sesijų daug, verta jas pavadinti, kad nesusipainiotum — --name vėliava (arba
automatinis pavadinimas po plan mode):
Populiarus modelis — laikyti vieną atskirą „analizės” worktree’ą žurnalų peržiūrai ir užklausoms, kad jis nemaišytų tavo kūrimo sesijų.
4. Subagentai izoliacijoje — dešimtys agentų vienu metu
Čia worktree’ai atsiskleidžia iki galo. Subagentai irgi gali dirbti kiekvienas savame worktree — tai idealu dideliems paketiniams pakeitimams ir migracijoms. Paprašius „naudok worktree’us savo agentams”, gali paleisti 10+ lygiagrečių agentų, kur kiekvienas nuo pradžios iki galo pasitikrina savo pakeitimą ir tik tada ruošia PR.
Agentą gali sukonfigūruoti, kad jis visada dirbtų izoliuotai — .claude/agents/ faile:
Visą šitą orkestrą patogu stebėti Agent View rodinyje (paleistame iš šakninio katalogo) — jis sugrupuoja visas vykstančias sesijas pagal būseną.
5. Ne-git sistemos — worktree hooks
Jei komanda naudoja ne git, o Mercurial, Perforce, SVN ar jj, izoliaciją vis tiek gali
pasiekti — per WorktreeCreate ir WorktreeRemove hooks. Juose aprašai, kaip tavo
sistemoje sukuriama ir pašalinama darbo vieta:
Taip tas pats lygiagretaus darbo modelis veikia nepriklausomai nuo versijų kontrolės sistemos.
Ką pradėti šiandien
- Susikurk vieną worktree’ą ranka (
git worktree add), kad pajustum principą. - Kitą dieną naudok
claude --worktree— tegul viską padaro pats. - Susidėk aliasus (
za,zb,zc) trims lygiagrečioms sesijoms. - Didelei migracijai išbandyk subagentus su
isolation: worktree. - Baigęs išvalyk —
git worktree removeirgit worktree prune.
Worktree’ai — tai riba, ties kuria Claude Code nustoja būti „vienu pagalbininku” ir tampa komanda agentų, dirbančių tau lygiagrečiai. Pradėk nuo dviejų — ir greitai nebenorėsi grįžti prie vieno lango.