Lekce 22
Git worktrees - paralelní práce více agentů najednou
Shrnutí
Lekce ukazuje Git worktrees - řešení situace, kdy chcete nechat pracovat víc AI agentů nad jedním projektem zároveň. Samotné větve nestačí: všechny sdílejí jednu složku, takže přepnutí větve mění obsah pod rukama ostatním. Worktree z každé větve udělá vlastní složku, takže můžete mít vedle sebe třeba tři rozjeté varianty projektu a všechny běží paralelně.
Co v lekci řešíme
- Proč si agenti nad jednou složkou lezou do práce, i když každý pracuje ve své větvi.
- Že přepnutí větve vždycky přepíše obsah pracovní složky - proto se musí commitovat před každým přepnutím.
- Jak worktree zapnout v Claude appce (zaškrtávátko Worktree při zakládání nové konverzace).
- Kde worktrees fyzicky vznikají: skrytá složka
.claude/worktrees/uvnitř projektu (skryté soubory zobrazíte na Macu přes Cmd+Shift+tečka). - Ukázka tří paralelních variant appky najednou (zelená, žlutá, modrá) bez jediného přepnutí větve.
- Že PR a historie v Sourcetree vypadají úplně stejně jako u klasických větví - worktree nic nemění na Gitu samotném, jen na počtu složek.
- Spuštění worktree z terminálu:
claude --worktree. - Nástroj Superset, který je nad worktrees postavený a umožňuje mezi nimi přepínat.
Klíčové koncepty
- Worktree (pracovní strom) - další složka napojená na stejný repozitář, ve které je aktivní jiná větev. Jeden repozitář, více pracovních složek.
- Rozdíl proti větvím - větve se přepínají v jedné složce, worktrees existují vedle sebe současně.
- Rozdíl proti ručnímu kopírování repa - worktrees řeší Git sám, nemusíte složky pojmenovávat ani je udržovat.
Jak to zadat agentovi (příklady promptů z lekce)
- "Uprav primární barvu na zelenou." (se zaškrtnutým Worktree - změna vznikne v odděleném worktree)
- "Změň mi barvu tlačítka na žlutou." (druhý agent, druhý worktree, běží paralelně)
- "Vytvoř mi PR." (z worktree se pull request vytvoří úplně stejně jako z běžné větve)
Poznámky / doporučení z lekce
- Worktrees dávají smysl hlavně u dlouhotrvajících úloh - nemusíte čekat, až jeden agent dojede, aby mohl začít další.
- Počet worktrees je prakticky neomezený.
- Hlavní složka projektu zůstává normálně použitelná, worktrees jsou navíc.
- Ve videu zmíněný Superset je ukázaný na YouTube kanále AI s rozumem - Filip Oborník.
Přepis videa
Automatický přepis, může obsahovat chyby.
Paralelní práce s více agenty nad stejným projektem, složkou. To je takovej vlhkej sen všech vibe koderů, agentic inženýrů nebo obecně lidí, co používají AI agenty. Ale vždycky tam vyvstává ten jeden problém. Pokud mám jednu složku a chci nad ní nechat pracovat agenty na více věcech zároveň, tak oni si do tý práce lezou a tak nějak si navzájem šahají do věcí a to prostě není ideální, protože se vám to začne rozbíjet. Agentům se ty věci mění pod rukama. Zkrátka nevěstí to nic dobrýho. A i přesto, že používáme Git, používáme Git větve, tak pořád tady ten problém trvá, protože i přesto, že máme víc Git větví, tak ty agenti šahaj vlastně na jednu složku. Řešením jsou takzvaný Git worktrees. My už jsme si v tomhletom kurzu ukazovali, jak díky větvím, to znamená tady tomu, že si můžeme větvit vlastně ty úpravy, můžem pracovat paralelně na více věcech. Ale taky jsem tam zmiňoval, že vždycky si musíte uložit ten commit. Vždycky si musíte udělat tu zálohu v čase, abyste se mohli přepnout do té jiné větve pak zpátky, protože vždycky ty větve pracujou v jedné složce a to je tadycto. Zkrátka i když máte tři větve, tak vy se mezi nima musíte přepínat, ale vždycky musíte vlastně uložit si tu práci, protože přepnutí na tu danou větev, to, že si ji vyberu, tak mi vlastně změní ten obsah tady tý složky. A když se přepnu sem, tak se mi zase změní obsah tady. No a todlecto není prostě ideální. Vy nemůžete s více větvema pracovat nad jednou složkou tak, aby si ti agenti nesahali do práce. Respektive ani nemůžete více větví namapovat na jednu složku, jenom oni vám vždycky tu složku vlastně přepínaj. No a Git worktrees tak se snaží tady z toho problému, kdy vlastně můžete mít jenom aktivní tu jednu větev nad tou složkou, udělat situaci, kdy vám ty složky vlastně jako rozkopíruje a vy najednou jste schopný paralelně pracovat nad těma větvema a mít je zaplý všechny najednou. To znamená mít vedle sebe třeba tři agenty, který pracujou na úplně jinejch změnách v různejch větvích, ale pracujou fakt paralelně. Nemusíte přepínat, nemusíte nechat jednoho dojet, aby ten další to udělal. Jasně, vy i doposud jste to mohli udělat tak, že jste si prostě to vaše repo, tu vaši složku zkopírovali několikrát, ale to není úplně ideální. Pak se o to musíte starat. Musíte to pojmenovávat. Git worktrees vám todleto vyřeší krásně jako součást Gitu a nemusíte se o moc věcí starat. Ten Git worktree totiž zapnete úplně jednoduše, stejně jako jsme si to ukazovali předtím v Claude appce. Tak když si tady vyberete Local, tu vaši složku, máte tady tu větev, ze který chcete vycházet, a tak jenom si tady zaškrtnete Worktree. No a najednou se vám vytvoří nová složka. Uděláme si tady třeba úpravu. Uprav primární barvu na zelenou. Máme zaškrtlý to Worktree a já si teďka tady kliknu a dám si Show in Finder. No a tady když si všimnete, tak my se vůbec nenacházíme v tý klasický složce. Respektive my se nacházíme v podsložce tý dané složky. Tohle je ten náš výmluvomat. To je ta klasická složka, ve který se normálně pracuje. Když teďka na Macu zmáčknu Command Shift tečka, tak si tady zobrazím tyhlety skrytý soubory. Kdyžtak je to pak na Windowsu, to je myslím, že pravým a zobrazit skryté soubory. No a tady mám tečka Claude, mám tady worktrees. A tady se mi teďka nakopírovaly vlastně znova ty soubory, znova ta složka s těma změnama jenom v jiný větvi. Takže prakticky to vypadá tak, že se vám ta složka vytvoří prostě několikrát pro každý to worktree, to znamená pro ten pracovní strom nad tou nějakou danou větví v tom Gitu. No a vy můžete takhle paralelně pracovat. Já když si tady otevřu tu apku, co jsme teďka změnili, tak vidíte, že tady mám zelenou barvu. No ale jinej agent tak může pracovat jinde. A já když se tady přepnu do druhýho worktreečka, to znamená úplně stejně, abych si vytvořil novou konverzaci a zapnul to worktree, otevřu si tady tu apku, tak vidíte, že je modrá. A já tady vedle sebe můžu mít vlastně takhle dvě ty apky, obě dvě s jinejma změnama, jenom díky tomu, že mám právě to worktree. No a ještě samozřejmě tady pak mám tu originální apku, když si kliknu sem, takhle si ji otevřu. Ona tady teda nemá žádný změny oproti týhle, ale mám vlastně jako tři varianty. Protože znova, když to zrekapituluju, todle je ta hlavní složka, ve který pracujem, ve který otevíráme toho agenta. Když dáváme novou konverzaci, tak tady si vybíráme tu složku. A když zaškrtnete to worktree, tak se vám vlastně v tečka Claude worktrees tady vytvořej tady ty podsložky, který vlastně úplně stejně kopírujou to, co máte v tý hlavní složce. Vycházej z nějaký větve, vycházej z jejich změn, ale vlastně ty soubory se tam zkopírovaly znova. No a ve chvíli, kdy tu změnu máte hotovou, tak si tady uděláte Vytvoř mi PR. To znamená ten takzvaný pull request. A tady uvidíte, že nám vyskočí úplně to stejný PR, jak jsme zvyklí. Už se nám tady vytváří. Tak a když si tady na něj kliknu, tak vidíte, tady je ten náš pull request. Vypadá úplně stejně jako ty předchozí, když jsme měli jenom větve. To znamená, vidím změny, vidím nějakej popisek. Takže já když si tady otevřu Sourcetree, ve kterým se koukáme na tu historii toho Gitu, tak vidíte, že mi tady teďka dnes v patnáct dvacet přibyla nová větev změna barvy akcentu. Takže normálně to tady vidím úplně stejně, jako když používám klasický větve. Ten rozdíl toho worktreečka je opravdu jenom v tom, že vám to udělá ještě tu složku navíc, ještě vlastně tu kopii tý složky toho projektu. Takže opravdu teďka paralelně můžu pracovat na více věcech. To znamená, že já teďka nemusím přepínat žádnou větev. Kliknu si tady novou na Výmluvomat a řeknu mu změň mi barvu tlačítka na žlutou. Taky ho to nechám takhle zapracovat a zase jsem tam měl zaškrtnutou tu volbu Worktree. Tak a vidíte, že teďka se mi to tady změnilo. Mám tady tu žlutou. Já si tady zase otevřu v tom Finderu ty změny. Jenom si to tady trošku poladíme, ať v tom nemáme nepořádek. Jo a tadycto je to moje nový worktree. A tady když tohle si zavřu, tak tady když se podívám na ty worktrees, tak tohle je to nový, co jsem si vytvořil teďka s tou žlutou, a tohle je to, co si je s tou zelenou. Takže já když si tady zmáčknu index, tak to vidím žlutou barvou. Když si tady zmáčknu tadycto, tak to vidím se zelenou barvou. No a když si tady vlezu úplně do toho rootu, to znamená do tý úplně hlavní složky, tak to vidím s modrou barvou. Takže vidíte, já tady mám vlastně tři rozjetý paralelně projekty. Můžu si je spouštět, na všech můžu pracovat. A tohle vám odemkne produktivitu úplně neuvěřitelným způsobem. Určitě se vám to bude hodit i v terminálu. Tak jenom pro představu, spouští se worktree tak, že napíšete, jste v té vaší složce, ve které pracujete. Takže já bych se tady přepnul do výmluvomatu. Si to tady vyčistím a dám si tady Claude pomlčka pomlčka worktree, a tímhle bych si vytvořil další worktreečko, vlastně konverzaci v jiným worktree. No a ty worktrees tak vám umožňujou další věci. Já už jsem na svém YouTube kanále, můžete mrknout na AI s rozumem Filip Oborník, tak představoval aplikaci Superset, a ta funguje právě tak, že vy máte jeden repozitář, to je ta složka, a tady máte ty takzvaný worktreečka. To jsou ty oddělený složky, který jsme si teďka ukazovali a vytvářeli. No a vy si mezi nima tady můžete krásně přepínat, můžete si tady vlastně mezi těma worktreečkama jednoduše přecházet, a je to jako super nástroj na productivity boost, kterej je právě postavenej nad tím konceptem Git worktrees. Takže sečteno a podtrženo, Git worktrees. Je to prakticky to samý jako Git větve, jenom s jedním velkým rozdílem. A to tím, že místo toho, abyste ty větve museli přepínat a vždycky měnili obsah té složky, ze který vycházíte, ve který pracujete, tak se vám vytvoří nová složka, do který se zkopírujou ty data znova, a vy takhle můžete mít těch worktrees prakticky neomezeně. Je to jedno a můžete takhle nechat všechny ty agenty pracovat paralelně. Když máte dlouhotrvající úlohy, tak tohle je opravdu life saver, kterej vám zase tu produktivitu a tu pohodlnost dokáže zvýšit. A v kombinaci s nástrojem, jako je Superset, to je pak k nezaplacení.
Tohle byla celá lekce, ne ukázka.
Zbytek kurzu funguje přesně takhle. Odemkneš ho jednorázovou platbou a zůstane ti napořád.
Podívat se na celý kurz