
Git worktree: viac vecí naraz bez chaosu
Ako pracovať na viacerých vetvách naraz bez prepínania a odkladania zmien. Základné príkazy git worktree, pasce a využitie s AI asistentmi.
Stručne: Git worktree vám dovolí mať jeden repozitár vytiahnutý do viacerých priečinkov naraz, každý na inej vetve. Opravu chyby tak spravíte vedľa rozrobenej funkcie bez git stash a prepínania — a pri práci s AI asistentmi môže každý pracovať vo vlastnom priečinku.
Poznáte to: robíte na novej funkcii, máte rozpracované súbory a zrazu príde „nejde prihlásenie, treba to opraviť hneď“. Čo teraz?
Väčšina ľudí urobí jedno z toho:
git stash, prepne vetvu, opraví, prepne späť,git stash pop— a dúfa, že sa nič nepomieša,- alebo commitne rozpracovaný kód s popisom „wip“.
Existuje lepší spôsob: git worktree.
Čo je worktree
Normálne máte jeden repozitár a jeden pracovný priečinok. Prepnutím vetvy sa súbory v priečinku zmenia.
Worktree vám dovolí mať viac pracovných priečinkov z jedného repozitára, každý na inej vetve. Zdieľajú históriu aj objekty, takže to nezaberá miesto ako nové klonovanie. Ale súbory má každý svoje.
Základné príkazy
Nový priečinok s novou vetvou:
git worktree add ../projekt-oprava -b oprava-prihlasenia main
Tým vznikne priečinok ../projekt-oprava s vetvou oprava-prihlasenia vytvorenou z main. Váš pôvodný priečinok s rozrobenou prácou ostane nedotknutý.
Zoznam všetkých pracovných priečinkov:
git worktree list
Keď je hotovo, priečinok odstránite:
git worktree remove ../projekt-oprava
A ak ste priečinok zmazali ručne, git si to upratá:
git worktree prune
Ako to používam ja
- Hlavný priečinok ostáva na hlavnej vetve. Z neho vydávam a nasadzujem.
- Každá väčšia úloha dostane vlastný worktree a vlastnú vetvu.
- Každý worktree má vlastný vývojový server na inom porte. Takže môžem mať otvorené tri verzie aplikácie naraz a porovnávať ich.
Najväčšiu cenu to má pri práci s AI. Keď na troch úlohách naraz pracujú traja AI asistenti, každý je vo vlastnom priečinku a vzájomne si neprepisujú súbory. Na konci ich vetvy zlúčim a konflikty vyriešim naraz.
Na čo si dať pozor
1. Jedna vetva môže byť len v jednom worktree. Git nedovolí mať tú istú vetvu otvorenú dvakrát — a je to dobre.
2. Závislosti a lokálne dáta nie sú zdieľané. node_modules, lokálna databáza, súbory .env — tie sú v každom priečinku zvlášť. Nový worktree treba doinštalovať a lokálnu databázu si skopírovať, ak ju potrebujete.
3. Neprepínajte vetvu pod bežiacim serverom. Toto platí vždy, nielen pri worktree. Keď vývojový server beží a vy prepnete vetvu, zmiznú mu súbory pod rukami a začne padať na nezmyselných chybách. Worktree tento problém rieši — namiesto prepínania otvoríte nový priečinok.
4. Upratujte. Staré worktree zaberajú miesto na disku (hlavne node_modules). Raz za čas git worktree list a nepotrebné odstráňte. A ak v nich bežia servery, najprv ich zastavte.
Úloha na precvičenie
Vyskúšajte si to na ľubovoľnom svojom projekte:
- V hlavnom priečinku rozrobte zmenu v dvoch súboroch a necommitnite ju.
- Vytvorte worktree pre „naliehavú opravu“:
git worktree add ../projekt-oprava -b oprava main - V novom priečinku spravte malú zmenu, commitnite ju a zlúčte do
main. - Vráťte sa do pôvodného priečinka — vaša rozrobená práca je nedotknutá.
- Upratajte:
git worktree remove ../projekt-opravaagit branch -d oprava.
Celé to trvá desať minút a odvtedy už git stash nebudete potrebovať tak často.
Časté otázky
Zaberie to veľa miesta? História sa nezdvojuje, zdvojujú sa len súbory pracovného priečinka. Najviac miesta zvyčajne zaberú závislosti, napríklad node_modules.
Môžem worktree presunúť? Áno, cez git worktree move. Nepresúvajte ho ručne v súborovom systéme — git by o ňom stratil prehľad.
Funguje to s editorom? Každý worktree je obyčajný priečinok. Otvoríte ho v editore ako samostatný projekt, pokojne v dvoch oknách naraz.
Čo keď zabudnem, kde mám ktorý worktree? git worktree list vám ukáže všetky, aj s vetvou a posledným commitom.
Kedy worktree netreba
Na malé veci, ktoré trvajú päť minút, stačí obyčajná vetva. Worktree sa oplatí, keď:
- robíte na viacerých veciach súbežne,
- potrebujete porovnať dve verzie aplikácie vedľa seba,
- nechcete riskovať, že sa rozrobená práca pomieša s opravou.
Worktree a práca s AI asistentmi
Kde worktree naozaj ukáže silu, je práca s viacerými AI asistentmi naraz. Každému dám vlastný priečinok, vlastnú vetvu a vlastný port pre vývojový server. Jeden robí mobilné rozhranie, druhý vyhľadávanie, tretí opravu vo faktúrach. Navzájom si neprepisujú súbory a ja každú vetvu skontrolujem samostatne.
Keď sú hotové, zlúčim ich do jednej spoločnej vetvy. Ak sa dve zmeny dotkli toho istého súboru, konflikt riešim raz, na jednom mieste — nie priebežne v chaose jedného priečinka. Bez worktree by takýto spôsob práce nebol možný.
Na záver
Worktree je jeden z tých nástrojov, o ktorých si po týždni poviete „ako som mohol žiť bez toho“. Vyskúšajte si ho na najbližšej oprave — a už sa nebudete báť, že si rozbijete rozrobenú prácu.
Súvisiace články
- #git
- #workflow
- #vetvy
- #produktivita


