Codex worktree: екінші тапсырмаға арналған бөлек жұмыс көшірмесі
MarkdownCodex CLI 0.155.1 нұсқасының жұмыс көшірмесі: эксперименттік worktree жалаушасы, бастапқы HEAD, жаңа қалтаны тексеру, нәтижені сақтау және қауіпсіз жою.
Мақаланы толық оқу
Негізгі түйін
Codex CLI 0.155.1 нұсқасында екінші тапсырмаға бөлек жұмыс көшірмесін codex --enable worktrees --worktree пәрмені арқылы жасайсыз. Бұл мүмкіндік эксперименттік және әдепкіде өшірулі: оны алдын ала қоспасаңыз, Codex --enable worktrees параметрінсіз --worktree жалаушасымен іске қосудан бас тартады. Көшірме бастапқы жобаның соңғы коммитінен (HEAD) жасалады; коммитке енгізілмеген өзгерістер көшірілмейді, ал көшірме атаулы тармаққа тіркелмеген detached HEAD күйінде болады.
Мысалы, Codex CLI арқылы бір модульді қайта құрылымдап жатқанда, екінші тапсырма туындайды делік: басқа модульге тест жазу керек. Бір қалтада екінші сеансты ашу қауіпті: бірінші және екінші тапсырмалардың өзгерістерін шатастырып алу оңай. --worktree жалаушасы екінші тапсырмаға сол жобаның бөлек қалтасын жасайды да, біріншісіне тимейді.
Агенттермен қатар жұмыс істеуге арналған практикалық материалдар: Ailoot құжаттамасы.
--worktree не жасайды және көшірмеге қандай файлдар кіреді
Git терминологиясында worktree — сол репозиторийге байланыстырылған қосымша жұмыс қалтасы: ол коммиттер тарихын ортақ пайдаланады, бірақ дискіде өз файлдар жиыны болады. Codex CLI 0.155.1 нұсқасында --worktree жалаушасы осы Git механизмін пайдаланып, бірінші тапсырма орындалып жатқан қалтаға тимей, бөлек қалтада жаңа агент сеансын бастайды.
Жаңа жұмыс көшірмесінде іске қосылған сәтте бастапқы жобаның HEAD нұсқасы көрсетіп тұрған коммиттегі файлдар болады: бұл редакторда файлды соңғы рет сақтаған кез емес, соңғы коммит. Бұл пәрмен коммитке енгізілмеген өзгерістер мен жаңа файлдарды көшірмейді. Редакторда сақтау Git-ке коммит жасаумен бірдей емес. Екінші тапсырманы бастаған кезде бірінші қалтада коммитке енгізілмеген өзгерістер болса, олар тек сол қалтада қалады.
Бұл бүкіл репозиторийдің сақтық көшірмесі де, бүкіл компьютерді оқшаулау да емес. Бұл — сол жобаның тармақ пен коммиттер тарихына қол жеткізетін екінші жұмыс қалтасы. Басқа құралдағы ұқсас механизм туралы Claude Code және git worktree: қатар орындалатын тапсырмалар нұсқаулығынан оқыңыз.
Дайындық: нұсқа, жобаға сенім және коммит
Бастамас бұрын үш нәрсені тексеріңіз. Пәрмендерді бастапқы жобаның қалтасынан орындаңыз.
Алдымен Codex CLI нұсқасын тексеріңіз. Бұл нұсқаулар 0.155.1 нұсқасына арналған; басқа нұсқаларда жалаушалардың әрекетін бөлек тексеріңіз:
codex --version
Екіншіден, HEAD-і бар коммитті көрсететін жергілікті Git жобасы керек; басқаша айтқанда, репозиторийде кемінде бір коммит болуы тиіс. Әйтпесе көшірмені жасайтын негіз жоқ.
Үшіншіден, бастапқы жобаға сенім білдірілген болуы керек: егер жоба сенімсіз деп белгіленсе, --worktree жалаушасымен іске қосу көшірме жасалмай тұрып сәтсіз аяқталады. Codex CLI-ді енді баптап жатсаңыз, негізгі дайындық Codex (OpenAI): ол не және оны қалай бастау керек нұсқаулығында қамтылған.
Осы репозиторийдің бар жұмыс көшірмелерінің тізімін алдын ала тексеріңіз. Іске қосқаннан кейін оны салыстыру үшін пайдалануға болады:
git worktree list
Бөлек қалталар тапсырмаларды бір-бірінен ажыратуға көмектеседі. Агентпен жұмыс істеудің жалпы тәсілі үшін Ailoot құжаттамасындағы практикалық материалдар пайдалы.
Қадамдар: екінші тапсырмаға бөлек көшірмені бастау
Эксперименттік мүмкіндікті қосып, бөлек көшірмеде сеансты бастау
Пәрменді бастапқы жобаның қалтасынан, яғни бірінші тапсырмамен жұмыс істеп жатқан жерден орындаңыз.
codex --enable worktrees --worktreeКүтілетін нәтиже: Codex ағымдағы HEAD нұсқасынан жобаның жаңа жұмыс көшірмесін жасап, онда агент сеансын ашады. Көшірме атаулы тармаққа тіркелмеген detached HEAD күйінде болады. 0.155.1 нұсқасында жалауша осылай жұмыс істейді.
Бастапқы жобадағы басқа терминалдан жұмыс көшірмелерін қайта тізімдеу
git worktree listКүтілетін нәтиже: шығыста жаңа көшірменің жолы және detached HEAD белгісі (немесе бар болса, тармақ) көрсетілген қосымша жол болады. Бұл тізім Git-тің көшірмені тіркегенін көрсетеді, бірақ агент тапсырманы аяқтағанын растамайды. Файлдардың бар екеніне көз жеткізу үшін тізімдегі жол бойынша қалтаны ашып, ішін тексеріңіз.
Нәтижені тексеру және жұмысты сақтау
Жаңа көшірмедегі екінші тапсырма аяқталған соң, нәтижені бөлек сақтап, тасымалдауыңыз керек. --worktree пәрмені өзгерістерді негізгі тармаққа біріктірмейді және нәтижені автоматты түрде тасымалдамайды. Көшірме detached HEAD күйінде қалады, сондықтан оның ішінде коммит жасау өздігінен жаңа тармақ құрмайды. Егер сол коммиттерді сақтағыңыз келсе, көшірме қалтасын жоймас бұрын оларды тармаққа тіркеңіз немесе негізгі жобаға тасымалдаңыз.
Нәтижені сақтамай тұрып көшірме қалтасын жоймаңыз. Жұмыс қалтасының таза екенін тексеру қажетті коммиттерді сақтаудың орнына жүрмейді: олар әлі де ешбір тармаққа тіркелмеуі мүмкін.
Әртүрлі құралдарда бір уақытта тапсырмалармен жұмыс істесеңіз, олардың бір-біріне кедергі келтірмеу жолын алдын ала жоспарлаңыз. Екі агентті бірге қолдану туралы Claude Code пен Codex бірге нұсқаулығынан оқыңыз.
Іске қосу үзіліп қалса: көшірмені қайдан табуға болады
--worktree жалаушасымен іске қосу бірнеше себепке байланысты сәтсіз болуы мүмкін:
- мүмкіндік алдын ала қосылмаған және іске қосу пәрменінде
--enable worktreesжоқ: Codex--worktreeжалаушасымен іске қосудан бас тартады; - қате қалтада тұрсыз немесе коммит жоқ: ағымдағы қалта Git репозиторийі болмаса немесе онда әлі коммит болмаса, көшірмені жасайтын негіз жоқ;
- жоба сенімсіз деп белгіленген: Codex
--worktreeжалаушасымен сеанс бастаудан бас тартады. Алдымен дұрыс жобаны ашқаныңызды тексеріңіз. Оның сенім күйін автоматты түрде өзгертпеңіз.
Егер сеанс жаңадан жасалған көшірмеге қосыла алмаса, мысалы, процесс үзіліп қалса, жұмыс қалтасы автоматты түрде жойылмайды. Алдымен жұмыс көшірмелерінің тізімін тексеріңіз, ал бірдеңені жоймас бұрын осы көшірмені Codex CLI сеанстарының ешқайсысы әлі пайдаланып жатпағанына көз жеткізіңіз:
git worktree list
Қалтаны ашып, жоймас бұрын қажет өзгерістерді сақтаңыз. Агент сеансы іске қосылып үлгермесе де, көшірме қалуы мүмкін. Көшірме бар болса, қажет болмай қалса және оны ешбір сеанс пайдаланбайтыны анық болса, бастапқы репозиторийден қалтаның жолын көрсетіп, git worktree remove пәрменімен қолмен жойыңыз. --force қоспаңыз: көшірмеде коммитке енгізілмеген не Git қадағаламайтын файлдар болса, пәрмен оны жоюдан бас тартады. Бас тартса, қорғанысты өшірмей қалтаның ішін тексеріңіз.
Codex CLI жаңартылғанда, codex --version пәрменін қайта тексеріп, git worktree list арқылы да тексеруді қайталаңыз: эксперименттік жалаушалардың әрекеті нұсқалар арасында өзгеруі мүмкін.
Қосымша материалдар мен құралдар: Ailoot.
Толығырақ
Жиі қойылатын сұрақтар
Екінші worktree сақталмаған не коммиттелмеген өзгерістерімді қамти ма?
Жоқ. Сипатталған CLI нұсқасында ол бастапқы репозиторийдің HEAD коммитінен басталады. Коммиттелмеген өзгерістер мен жаңа файлдар бастапқы қалтада қалады, сондықтан редакторда файлды сақтаудың өзі оны көшіруге жеткіліксіз.
Таза detached worktree-ді қауіпсіз жоюға бола ма?
Таза қалтада да атаулы тармаққа бекітілмеген коммиттер болуы мүмкін. Алдымен оларды сақтаңыз не көшіріңіз, ешбір сеанс worktree-ді қолданбайтынын тексеріңіз. Кейін қорғаныстардан күшпен өтпей, кәдімгі Git worktree жоюын пайдаланыңыз.