Codex worktree: отдельная папка для второй задачи (0.155.1)
MarkdownКак в Codex CLI 0.155.1 создать отдельную рабочую копию командой `codex --enable worktrees --worktree`, от какого коммита она создаётся и как проверить результат или устранить сбой запуска.
Читать статью полностью
Главное
В Codex CLI версии 0.155.1 отдельную рабочую копию для параллельной задачи создаёт команда codex --enable worktrees --worktree. Эта функция экспериментальная и изначально отключена. Если её не активировать заранее, Codex не запустится с флагом --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
Затем убедитесь, что перед вами локальный Git-проект и HEAD указывает на существующий коммит. Иными словами, в репозитории должен быть хотя бы один коммит, от которого можно создать рабочую копию.
Наконец, проверьте, что проект является доверенным источником. Если он явно помечен как недоверенный, запуск с --worktree завершится ошибкой ещё до создания копии. Начальную настройку Codex CLI описывает руководство Codex (OpenAI): что это и как запустить.
До запуска сохраните список уже зарегистрированных рабочих копий репозитория. Позже его можно сравнить с результатом:
git worktree list
Разные папки позволяют вести задачи независимо. Практические советы по организации работы с агентом доступны в документации Ailoot.
Пошаговый запуск отдельной копии
Активируйте экспериментальную функцию и откройте сессию в отдельной копии
Выполните команду из папки исходного проекта, где идёт первая задача.
codex --enable worktrees --worktreeОжидаемый результат: Codex создаст рабочую копию на основе текущего HEAD и запустит в ней сессию агента. В версии 0.155.1 копия находится в состоянии detached HEAD — она не привязана к именованной ветке.
Ещё раз выведите список рабочих копий из терминала исходного проекта
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 без принудительного обхода защиты.