Codex worktree: erillinen työkopio toista tehtävää varten
MarkdownCodex CLI 0.155.1:n työkopio: kokeellinen worktree-lippu, lähteen HEAD, uuden kansion tarkistaminen, tuloksen säilyttäminen ja turvallinen poistaminen.
Lue koko artikkeli
Tärkein asia
Codex CLI:n versiossa 0.155.1 luot erillisen työkopion toista tehtävää varten komennolla codex --enable worktrees --worktree. Ominaisuus on kokeellinen ja oletusarvoisesti poissa käytöstä: jos et ole jo ottanut sitä käyttöön, Codex kieltäytyy käynnistymästä --worktree-lipulla ilman --enable worktrees -lippua. Kopio luodaan alkuperäisen projektin viimeisimmästä commitista (HEAD), ilman commitoimattomia muutoksia, detached HEAD -tilassa – siihen ei liity nimettyä branchia.
Voit esimerkiksi olla käyttämässä Codex CLI:tä yhden moduulin refaktorointiin, kun eteen tulee toinen tehtävä: testien kirjoittaminen toiselle moduulille. Toisen istunnon avaaminen samassa kansiossa on riskialtista, sillä ensimmäisen ja toisen tehtävän muutokset on helppo sekoittaa keskenään. --worktree-lippu luo toiselle tehtävälle erillisen kansion samasta projektista ja jättää ensimmäisen tehtävän koskemattomaksi.
Käytännön resursseja agenttien rinnakkaiseen työskentelyyn: Ailoot-dokumentaatio.
Mitä --worktree luo ja mitä tiedostoja kopioon tulee
Git-terminologiassa worktree on samaan repositoryyn linkitetty ylimääräinen työkansio: se jakaa commit-historian, mutta sillä on oma tiedostojoukkonsa levyllä. Codex CLI:n versiossa 0.155.1 --worktree-lippu käyttää tätä Git-mekanismia uuden agentti-istunnon käynnistämiseen erillisessä kansiossa. Kansio, jossa ensimmäinen tehtävä on jo käynnissä, jää koskemattomaksi.
Uusi työkopio sisältää tiedostot siitä commitista, johon alkuperäisen projektin HEAD osoittaa kopion käynnistyshetkellä – siis viimeisimmästä commitista, ei siitä hetkestä, jolloin viimeksi tallensit tiedoston editorissa. Tämä komento ei siirrä commitoimattomia muutoksia eikä uusia tiedostoja. Tallentaminen editorissa ei ole sama asia kuin Git-commitoiminen. Jos ensimmäisessä kansiossa on vielä commitoimattomia muutoksia, kun käynnistät toisen tehtävän, muutokset jäävät vain siihen kansioon.
Tämä ei ole koko repositoryn varmuuskopio eikä koko tietokoneen eristävä ympäristö. Kyseessä on saman projektin toinen työkansio, jolla on pääsy samaan branchiin ja commit-historiaan. Vastaavasta mekanismista toisessa työkalussa kerrotaan artikkelissa Claude Code ja git worktree: rinnakkaiset tehtävät.
Valmistelut: versio, projektin luotettavuus ja commit
Tarkista kolme asiaa ennen aloittamista. Suorita komennot alkuperäisen projektin kansiosta.
Tarkista ensin Codex CLI:n versio. Nämä ohjeet koskevat versiota 0.155.1. Jos käytössä on jokin muu versio, tarkista lippujen toiminta erikseen:
codex --version
Toiseksi tarvitset paikallisen Git-projektin, jonka HEAD osoittaa olemassa olevaan commitiin – toisin sanoen repositoryssa on oltava vähintään yksi commit. Muuten ei ole mitään, mistä kopio voitaisiin luoda.
Kolmanneksi lähteen on oltava luotettu: jos projekti on nimenomaisesti merkitty epäluotetuksi, käynnistys --worktree-lipulla epäonnistuu ennen kopion luomista. Jos olet vasta ottamassa Codex CLI:tä käyttöön, perusvalmistelut käsitellään artikkelissa Codex (OpenAI): mikä se on ja miten pääset alkuun.
Tarkista repositoryn nykyisten työkopioiden luettelo etukäteen. Voit verrata sitä käynnistyksen jälkeen:
git worktree list
Erilliset kansiot auttavat pitämään tehtävät erillään. Yleisiä käytännön neuvoja agentin kanssa työskentelyyn löytyy Ailoot-dokumentaatiosta.
Vaiheet: käynnistä erillinen kopio toista tehtävää varten
Ota kokeellinen ominaisuus käyttöön ja käynnistä istunto erillisessä kopiossa
Suorita komento alkuperäisen projektin kansiosta, jossa työskentelet jo ensimmäisen tehtävän parissa.
codex --enable worktrees --worktreeOdotettu tulos: Codex luo projektista uuden työkopion nykyisestä HEADistä ja avaa siellä agentti-istunnon. Kopio on detached HEAD -tilassa, eikä siihen liity nimettyä branchia. Näin lippu toimii versiossa 0.155.1.
Luettele työkopiot uudelleen toisessa terminaalissa alkuperäisessä projektissa
git worktree listOdotettu tulos: tulosteessa on yksi lisärivi, jolla näkyvät uuden kopion polku ja detached HEAD -merkintä (tai branch, jos sellainen on). Luettelo osoittaa, että Git on rekisteröinyt kopion, mutta se ei vahvista, että agentti on saanut tehtävän valmiiksi. Varmista tiedostojen olemassaolo avaamalla luettelossa mainitun polun kansio ja tarkistamalla sen sisältö.
Näin tarkistat tuloksen ja säilytät työsi
Kun toisen tehtävän työ uudessa kopiossa on valmis, tulos täytyy tallentaa ja siirtää erikseen. --worktree-komento ei yhdistä muutoksia pääbranchiin eikä siirrä tulosta automaattisesti. Kopio pysyy detached HEAD -tilassa, joten commitin tekeminen siihen ei itsessään luo uutta branchia. Jos haluat säilyttää nämä commitit, liitä ne branchiin tai siirrä ne pääprojektiin ennen kopion kansion poistamista.
Älä poista kopion kansiota, ennen kuin tulos on säilytetty. Työkansion puhtauden tarkistaminen ei korvaa tarvitsemiesi commitien säilyttämistä: ne eivät ehkä vieläkään ole liitettyinä mihinkään branchiin.
Jos työskentelet samanaikaisesti eri työkaluissa olevien tehtävien parissa, suunnittele etukäteen, miten estät niitä häiritsemästä toisiaan. Kahden agentin yhteiskäyttöä käsitellään artikkelissa Claude Code ja Codex yhdessä.
Jos käynnistys keskeytyi: mistä löydät kopion
Käynnistys --worktree-lipulla voi epäonnistua useasta syystä:
- Ominaisuutta ei otettu etukäteen käyttöön, eikä käynnistyskomennossa ole
--enable worktrees-lippua: Codex kieltäytyy käynnistymästä--worktree-lipulla; - Olet väärässä kansiossa tai commit puuttuu: jos nykyinen kansio ei ole Git-repository tai siinä ei vielä ole yhtään committia, kopion luomiseen ei ole lähdettä;
- Projekti on nimenomaisesti merkitty epäluotetuksi lähteeksi: Codex kieltäytyy käynnistämästä istuntoa
--worktree-lipulla. Varmista ensin, että olet avannut oikean projektin. Älä muuta sen luotettavuustilaa automaattisesti.
Jos istunto ei onnistunut liittymään juuri luotuun kopioon – esimerkiksi prosessin keskeytymisen vuoksi – työkansiota ei poisteta automaattisesti. Tarkista ensin työkopioiden luettelo ja varmista ennen poistamista, ettei mikään Codex CLI -istunto enää käytä kyseistä kopiota:
git worktree list
Avaa kansio ja tallenna tarvitsemasi muutokset ennen sen poistamista. Kopio saattaa jäädä jäljelle, vaikka agentti-istunnon käynnistys ei valmistunut. Jos kopio on olemassa, sitä ei enää tarvita eikä mikään istunto varmasti käytä sitä, poista se manuaalisesti alkuperäisestä repositorysta komennolla git worktree remove ja määritä kansion polku. Älä lisää lippua --force: jos kopiossa on commitoimattomia tai seuraamattomia tiedostoja, komento kieltäytyy poistamasta sitä. Jos komento kieltäytyy, tarkista kansion sisältö poistamatta suojausta käytöstä.
Kun päivität Codex CLI:n, tarkista codex --version uudelleen ja toista tarkistus komennolla git worktree list: kokeelliset liput voivat toimia eri tavoin eri versioissa.
Lisää resursseja ja työkaluja: Ailoot.
Lisätietoja
Kysymyksiä tästä oppaasta: Codex worktree: erillinen työkopio toista tehtävää varten
Sisältääkö toinen worktree tallentamattomat tai commitoimattomat muokkaukseni?
Ei. Kuvatussa CLI-versiossa se alkaa lähderepositorion HEAD-commitista. Commitoimattomat muutokset ja uudet tiedostot pysyvät alkuperäisessä kansiossa. Pelkkä editorissa tallentaminen ei siis siirrä niitä.
Onko puhdas detached-worktree turvallinen poistaa?
Puhtaassakin kansiossa voi olla committeja ilman nimettyä haaraa. Säilytä tai siirrä commitit ensin, varmista ettei istunto käytä worktreeä ja poista sitten tavallisella Git-worktree-menettelyllä pakottamatta suojien ohi.