Codex worktree: samostatná pracovná kópia pre druhú úlohu
MarkdownPracovná kópia Codex CLI 0.155.1: experimentálny príznak worktree, zdrojový HEAD, kontrola nového priečinka, zachovanie výsledku a bezpečné odstránenie.
Prečítať celý článok
Kľúčové zistenie
V Codex CLI verzie 0.155.1 vytvoríte samostatnú pracovnú kópiu pre druhú úlohu pomocou codex --enable worktrees --worktree. Táto funkcia je experimentálna a predvolene vypnutá: ak ste ju ešte nepovolili, Codex odmietne spustiť príkaz s --worktree bez --enable worktrees. Kópia sa vytvorí z najnovšieho commitu (HEAD) pôvodného projektu, bez necommitnutých zmien, v stave detached HEAD — bez priradenej pomenovanej vetvy.
Predstavte si napríklad, že pomocou Codex CLI refaktorujete jeden modul a objaví sa druhá úloha: napísať testy pre iný modul. Otvoriť druhú reláciu v rovnakom priečinku je riskantné: zmeny z prvej a druhej úlohy sa ľahko pomýlia. Príznak --worktree vytvorí pre druhú úlohu samostatný priečinok toho istého projektu a prvú úlohu ponechá nedotknutú.
Praktické zdroje o paralelnej práci s agentmi: dokumentácia Ailoot.
Čo vytvorí --worktree a ktoré súbory sa skopírujú
V terminológii Gitu je worktree ďalší pracovný priečinok prepojený s tým istým repozitárom: zdieľa históriu commitov, ale na disku má vlastnú sadu súborov. V Codex CLI 0.155.1 používa príznak --worktree tento mechanizmus Gitu na spustenie novej relácie agenta v samostatnom priečinku, pričom priečinok, v ktorom už prebieha prvá úloha, zostane nedotknutý.
Nová pracovná kópia obsahuje súbory z commitu, na ktorý pri spustení ukazuje HEAD pôvodného projektu — najnovšieho commitu, nie súboru naposledy uloženého v editore. Tento príkaz neprenáša necommitnuté zmeny ani nové súbory. Uloženie v editore nie je to isté ako commitnutie v Gite. Ak sú v prvom priečinku pri spustení druhej úlohy stále necommitnuté zmeny, zostanú iba v tomto priečinku.
Nejde o zálohu celého repozitára ani o izoláciu celého počítača. Je to druhý pracovný priečinok toho istého projektu s prístupom k rovnakej vetve a histórii commitov. Podobný mechanizmus v inom nástroji nájdete v článku Claude Code a git worktree: paralelné úlohy.
Príprava: verzia, dôveryhodnosť projektu a commit
Pred začiatkom skontrolujte tri veci. Príkazy spúšťajte z priečinka pôvodného projektu.
Najprv skontrolujte verziu Codex CLI. Tieto pokyny platia pre verziu 0.155.1; pri iných verziách si správanie príznakov overte samostatne:
codex --version
Po druhé, potrebujete lokálny projekt Gitu, ktorého HEAD ukazuje na existujúci commit — inými slovami, repozitár musí obsahovať aspoň jeden commit. Inak nie je z čoho vytvoriť kópiu.
Po tretie, zdroj musí byť dôveryhodný: ak je projekt výslovne označený ako nedôveryhodný, spustenie s --worktree zlyhá ešte pred vytvorením kópie. Ak Codex CLI len nastavujete, základnú prípravu nájdete v článku Codex (OpenAI): čo to je a ako začať.
Vopred skontrolujte zoznam existujúcich worktree v tomto repozitári. Po spustení ho môžete použiť na porovnanie:
git worktree list
Samostatné priečinky pomáhajú udržať úlohy oddelené. Praktické zdroje v dokumentácii Ailoot ponúkajú užitočný celkový prístup k práci s agentom.
Postup: spustenie samostatnej kópie pre druhú úlohu
Povoľte experimentálnu funkciu a spustite reláciu so samostatnou kópiou
Príkaz spustite z priečinka pôvodného projektu, v ktorom už pracujete na prvej úlohe.
codex --enable worktrees --worktreeOčakávaný výsledok: Codex vytvorí novú pracovnú kópiu projektu z aktuálneho HEAD a otvorí v nej reláciu agenta. Kópia bude v stave detached HEAD bez priradenej pomenovanej vetvy. Takto príznak funguje vo verzii 0.155.1.
V ďalšom termináli v pôvodnom projekte znova vypíšte zoznam worktree
git worktree listOčakávaný výsledok: výstup obsahuje ďalší riadok s cestou k novej kópii a označením detached HEAD (alebo vetvou, ak je priradená). Tento zoznam potvrdzuje, že Git kópiu zaregistroval, ale nepotvrdzuje, že agent dokončil úlohu. Ak sa chcete uistiť, že súbory existujú, otvorte priečinok na uvedenej ceste a skontrolujte jeho obsah.
Ako skontrolovať výsledok a zachovať svoju prácu
Po dokončení druhej úlohy v novej kópii musíte výsledok uložiť a preniesť samostatne. Príkaz --worktree nezlúči zmeny do hlavnej vetvy ani výsledok automaticky neprenesie. Kópia zostáva v stave detached HEAD, takže vytvorenie commitu v nej samo osebe nevytvorí novú vetvu. Ak tieto commity potrebujete zachovať, pred odstránením priečinka kópie ich priraďte k vetve alebo preneste do hlavného projektu.
Priečinok kópie neodstraňujte, kým výsledok nezachováte. Kontrola, že je pracovný priečinok čistý, nenahrádza zachovanie commitov, ktoré potrebujete: stále nemusia mať priradenú vetvu.
Ak súčasne pracujete na úlohách v rôznych nástrojoch, vopred si naplánujte, ako zabránite ich vzájomnému ovplyvňovaniu. Spoločná práca dvoch agentov je opísaná v článku Claude Code a Codex spolu.
Ak sa spustenie prerušilo: kde nájsť kópiu
Spustenie s --worktree môže zlyhať z viacerých dôvodov:
- funkcia nebola vopred povolená a príkaz na spustenie neobsahuje
--enable worktrees: Codex odmietne spustiť príkaz s príznakom--worktree; - ste v nesprávnom priečinku alebo chýba commit: ak aktuálny priečinok nie je repozitárom Gitu alebo ešte neobsahuje žiadne commity, nie je z čoho vytvoriť kópiu;
- projekt je výslovne označený ako nedôveryhodný zdroj: Codex odmietne spustiť reláciu s
--worktree. Najprv sa uistite, že ste otvorili správny projekt. Stav dôveryhodnosti nemeňte automaticky.
Ak sa relácii nepodarilo pripojiť k novovytvorenej kópii — napríklad preto, že sa proces prerušil — pracovný priečinok sa automaticky neodstráni. Najprv skontrolujte zoznam worktree a pred odstránením čohokoľvek sa uistite, že túto kópiu stále nepoužíva žiadna relácia Codex CLI:
git worktree list
Otvorte priečinok a pred jeho odstránením uložte všetky zmeny, ktoré potrebujete. Kópia môže zostať zachovaná aj vtedy, keď sa relácia agenta nedokončila. Ak kópia existuje, už ju nepotrebujete a máte istotu, že ju nepoužíva žiadna relácia, odstráňte ju manuálne z pôvodného repozitára príkazom git worktree remove a uveďte cestu k priečinku. Nepridávajte --force: ak kópia obsahuje necommitnuté alebo nesledované súbory, príkaz ju odmietne odstrániť. Ak odmietne, skontrolujte obsah priečinka bez vypnutia ochrany.
Po aktualizácii Codex CLI znova skontrolujte codex --version a zopakujte kontrolu pomocou git worktree list: experimentálne príznaky sa môžu medzi verziami správať odlišne.
Ďalšie zdroje a nástroje: Ailoot.
Viac podrobností
Otázky a odpovede: Codex worktree: samostatná pracovná kópia pre druhú úlohu
Bude druhý worktree obsahovať neuložené či necommitnuté úpravy?
Nie. V opísanej verzii CLI začína z HEAD zdrojového repozitára. Necommitnuté zmeny a nové súbory zostávajú v pôvodnom priečinku, takže uloženie v editore na prenos nestačí.
Je bezpečné odstrániť čistý detached worktree?
Aj čistý priečinok môže obsahovať commity bez pomenovanej vetvy. Najprv ich uchovajte či preneste, overte neprítomnosť aktívnej relácie a potom použite bežné odstránenie worktree Gitom bez vynútenia cez ochrany.