Codex worktree: en separat arbetskopia för en andra uppgift
MarkdownArbetskopia av Codex CLI 0.155.1: experimentell worktree-flagga, källans HEAD, kontroll av den nya mappen, bevarande av resultatet och säker borttagning.
Läs hela artikeln
Det viktigaste
I Codex CLI version 0.155.1 skapar du en separat arbetskopia för en andra uppgift med codex --enable worktrees --worktree. Funktionen är experimentell och inaktiverad som standard: om du inte redan har aktiverat den vägrar Codex att starta med --worktree utan --enable worktrees. Kopian skapas från det ursprungliga projektets senaste commit (HEAD), utan ocommittade ändringar, i ett detached HEAD-läge – utan någon namngiven branch kopplad till den.
Du använder till exempel Codex CLI för att refaktorera en modul när en andra uppgift dyker upp: att skriva tester för en annan modul. Det är riskabelt att öppna en andra session i samma mapp: det är lätt att blanda ihop ändringar från den första och den andra uppgiften. Flaggan --worktree skapar en separat mapp för samma projekt för den andra uppgiften, så att den första lämnas orörd.
Praktiska resurser för att arbeta med agenter parallellt: Ailoot-dokumentationen.
Vad --worktree skapar och vilka filer som hamnar i kopian
I Git-terminologi är en worktree en extra arbetsmapp som är länkad till samma repository: den delar commit-historiken men har sin egen uppsättning filer på disken. I Codex CLI 0.155.1 använder flaggan --worktree den här Git-mekanismen för att starta en ny agentsession i en separat mapp, så att mappen där den första uppgiften redan körs lämnas orörd.
Den nya arbetskopian innehåller filerna från den commit som det ursprungliga projektets HEAD pekar på när den startas – den senaste commiten, inte senaste gången du sparade en fil i din editor. Det här kommandot överför inte ocommittade ändringar eller nya filer. Att spara i editorn är inte samma sak som att committa i Git. Om den första mappen fortfarande innehåller ocommittade ändringar när du startar den andra uppgiften, finns ändringarna kvar endast i den mappen.
Det här är inte en säkerhetskopia av hela repositoryt eller en isolering av hela datorn. Det är en andra arbetsmapp för samma projekt, med åtkomst till samma branch och commithistorik. För en liknande mekanism i ett annat verktyg, se Claude Code och git worktree: parallella uppgifter.
Förberedelser: version, projekttillit och en commit
Kontrollera tre saker innan du börjar. Kör kommandona från det ursprungliga projektets mapp.
Kontrollera först Codex CLI-versionen. De här instruktionerna gäller version 0.155.1; för andra versioner bör du kontrollera flaggornas beteende separat:
codex --version
För det andra behöver du ett lokalt Git-projekt vars HEAD pekar på en befintlig commit – med andra ord måste repositoryt innehålla minst en commit. Annars finns det inget att skapa kopian från.
För det tredje måste källan vara betrodd: om projektet uttryckligen är markerat som obetrott misslyckas starten med --worktree innan kopian skapas. Om du precis håller på att konfigurera Codex CLI finns de grundläggande förberedelserna i Codex (OpenAI): vad det är och hur du kommer igång.
Kontrollera listan över repositoryts befintliga arbetskopior i förväg. Du kan jämföra med den efter starten:
git worktree list
Separata mappar hjälper till att hålla uppgifterna åtskilda. För en övergripande metod för att arbeta med en agent är de praktiska resurserna i Ailoot-dokumentationen användbara.
Steg: starta en separat kopia för en andra uppgift
Aktivera den experimentella funktionen och starta en session med en separat kopia
Kör kommandot från det ursprungliga projektets mapp, där du redan arbetar med den första uppgiften.
codex --enable worktrees --worktreeFörväntat resultat: Codex skapar en ny arbetskopia av projektet från aktuell HEAD och öppnar en agentsession där. Kopian är i detached HEAD-läge, utan någon namngiven branch kopplad till den. Så fungerar flaggan i version 0.155.1.
Lista arbetskopiorna igen i en annan terminal i det ursprungliga projektet
git worktree listFörväntat resultat: utdata innehåller en ytterligare rad med den nya kopians sökväg och en markering för detached HEAD (eller en branch, om en sådan finns). Den här listan visar att Git har registrerat kopian, men bekräftar inte att agenten har slutfört uppgiften. Kontrollera att filerna finns genom att öppna mappen på den angivna sökvägen och granska innehållet.
Så kontrollerar du resultatet och bevarar ditt arbete
När den andra uppgiften i den nya kopian är klar måste du spara och överföra resultatet separat. Kommandot --worktree sammanfogar inte ändringar i huvudbranchen och överför inte resultatet automatiskt. Kopian förblir i detached HEAD-läge, så att skapa en commit där skapar inte i sig en ny branch. Om du behöver bevara dessa commits kopplar du dem till en branch eller överför dem till huvudprojektet innan du tar bort kopians mapp.
Ta inte bort kopians mapp innan resultatet har bevarats. Att kontrollera att arbetsmappen är ren ersätter inte bevarandet av de commits du behöver: de kanske fortfarande inte är kopplade till någon branch.
Om du arbetar med uppgifter i olika verktyg samtidigt bör du planera i förväg hur du ska hindra dem från att störa varandra. Att arbeta med två agenter tillsammans tas upp i Claude Code och Codex tillsammans.
Om starten avbröts: var du hittar kopian
Start med --worktree kan misslyckas av flera skäl:
- funktionen aktiverades inte i förväg och startkommandot innehåller inte
--enable worktrees: Codex vägrar att starta med flaggan--worktree; - du befinner dig i fel mapp eller det saknas en commit: om den aktuella mappen inte är ett Git-repository eller ännu inte innehåller några commits finns det inget att skapa kopian från;
- projektet är uttryckligen markerat som en obetrodd källa: Codex vägrar att starta en session med
--worktree. Kontrollera först att du har öppnat rätt projekt. Ändra inte dess tillitsstatus automatiskt.
Om sessionen inte lyckades ansluta till den nyskapade kopian – till exempel för att processen avbröts – tas arbetsmappen inte bort automatiskt. Kontrollera först listan över arbetskopior och se till att ingen Codex CLI-session fortfarande använder kopian innan du tar bort något:
git worktree list
Öppna mappen och spara de ändringar du behöver innan du tar bort den. Kopian kan finnas kvar även om agentsessionen inte hann starta. Om kopian finns, inte längre behövs och definitivt inte används av någon session kan du ta bort den manuellt med git worktree remove från det ursprungliga repositoryt genom att ange mappens sökväg. Lägg inte till --force: om kopian innehåller ocommittade eller ospårade filer vägrar kommandot att ta bort den. Om kommandot vägrar kontrollerar du mappens innehåll utan att stänga av skyddet.
När du uppdaterar Codex CLI kontrollerar du codex --version igen och upprepar kontrollen med git worktree list: experimentella flaggor kan fungera olika mellan versioner.
Fler resurser och verktyg: Ailoot.
Fler detaljer
Frågor om den här guiden: Codex worktree: en separat arbetskopia för en andra uppgift
Följer osparade eller oincheckade ändringar med till andra worktree?
Nej. I beskriven CLI-version börjar den från källkodförrådets HEAD-commit. Oincheckade ändringar och nya filer stannar i originalmappen, så redigerarsparande räcker inte för överföring.
Är en ren frikopplad worktree säker att radera?
En ren mapp kan fortfarande innehålla commits utan namngiven gren. Bevara eller överför dem först, kontrollera att ingen session använder worktree och använd sedan vanlig Git-worktree-borttagning utan att tvinga förbi skydd.