# Codex worktree：為第二個任務建立獨立工作副本

> Codex CLI 0.155.1 的工作副本：實驗性 worktree 旗標、來源 HEAD、新資料夾檢查、保留結果與安全移除。

Source: https://ailoot.ai/blog/zh-hant-tw/codex-worktree-separate-task/
Canonical: https://ailoot.ai/blog/zh-hant-tw/codex-worktree-separate-task/
Language: zh-Hant-TW
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-086
Revision: sha256-699fea998acc6b92508ab9d9c50fbc41df2572375d3201169f9a580a7c63b737


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway for this section">

重點

在 Codex CLI 0.155.1 版中，使用 `codex --enable worktrees --worktree` 為第二個任務建立獨立工作副本。這項功能仍處於實驗階段，且預設為停用：如果你尚未啟用它，Codex 會拒絕在未加上 `--enable worktrees` 的情況下使用 `--worktree` 啟動。副本會從原始專案最新的提交（HEAD）建立，不包含未提交的變更，並處於 detached HEAD 狀態——沒有附加具名分支。

</div>

例如，你正使用 Codex CLI 重構某個模組，這時又接到第二個任務：為另一個模組撰寫測試。在同一個資料夾中開啟第二個工作階段有風險：很容易混淆第一個與第二個任務的變更。`--worktree` 旗標會為第二個任務建立同一專案的獨立資料夾，讓第一個任務維持原狀。

與代理平行協作的實用資源：[Ailoot 文件](https://ailoot.ai/docs/)。



## `--worktree` 會建立什麼，以及哪些檔案會進入副本

在 Git 術語中，worktree 是連結至同一個儲存庫的額外工作資料夾：它共用提交歷史，但在磁碟上有自己的檔案組。在 Codex CLI 0.155.1 中，`--worktree` 旗標使用這項 Git 機制，在獨立資料夾中啟動新的代理工作階段，不會動到第一個任務已在其中執行的資料夾。

新的工作副本會包含啟動時原始專案 HEAD 所指向之提交中的檔案——也就是最新的提交，而非你上次在編輯器中儲存檔案的時間點。這個指令不會移轉未提交的變更或新檔案。在編輯器中儲存，不等於在 Git 中提交。如果啟動第二個任務時第一個資料夾仍有未提交的變更，這些變更只會留在該資料夾中。

這不是整個儲存庫的備份，也不是整台電腦的隔離環境。它是同一專案的第二個工作資料夾，並可存取相同的分支與提交歷史。如需了解另一個工具中的類似機制，請參閱[Claude Code 與 git worktree：平行任務](https://ailoot.ai/blog/zh-hant-tw/claude-code-git-worktree/)。

## 準備工作：版本、專案信任狀態與提交

開始前請確認三件事。請在原始專案的資料夾中執行指令。

首先，確認 Codex CLI 版本。以下說明適用於 0.155.1 版；若是其他版本，請另行確認這些旗標的行為：

```bash
codex --version
```

其次，你需要一個本機 Git 專案，且其 HEAD 指向現有提交——也就是說，儲存庫中至少要有一個提交。否則就沒有可用來建立副本的來源。

第三，來源必須是受信任的：如果專案明確標記為不受信任，使用 `--worktree` 啟動會在建立副本前失敗。如果你才剛開始設定 Codex CLI，[Codex（OpenAI）：簡介與入門](https://ailoot.ai/blog/zh-hant-tw/openai-codex-install/)涵蓋了基本準備工作。

請事先查看此儲存庫現有工作副本的清單。啟動後可用它來比對：

```bash
git worktree list
```

使用不同資料夾有助於區分任務。如需了解與代理協作的整體做法，[Ailoot 文件](https://ailoot.ai/docs/)中的實用資源會有所幫助。



## 步驟：為第二個任務啟動獨立副本

1.  ### 啟用實驗性功能，並在獨立副本中啟動工作階段

    請在原始專案的資料夾中執行指令，也就是你目前正在其中處理第一個任務的資料夾。

    ```bash
    codex --enable worktrees --worktree
    ```

    預期結果：Codex 會從目前的 HEAD 建立新的專案工作副本，並在其中開啟代理工作階段。副本會處於 detached HEAD 狀態，沒有附加具名分支。這就是 0.155.1 版中此旗標的運作方式。

2.  ### 在原始專案的另一個終端機中再次列出工作副本

    ```bash
    git worktree list
    ```

    預期結果：輸出會多出一行，顯示新副本的路徑與 detached HEAD 標記（若有分支則會顯示分支）。此清單表示 Git 已登記該副本，但無法確認代理已完成任務。若要確認檔案是否存在，請開啟清單中顯示的路徑並檢查其內容。

## 如何檢查結果並保留你的工作

在新副本中的第二個任務完成後，你需要另外儲存並移轉結果。`--worktree` 指令不會將變更合併至主要分支，也不會自動移轉結果。副本仍處於 detached HEAD 狀態，因此在其中建立提交本身不會建立新分支。如果你需要保留這些提交，請在刪除副本資料夾前將它們附加至分支，或移轉至主要專案。

結果尚未保留前，請勿刪除副本資料夾。確認工作資料夾乾淨，不能取代保留所需提交的步驟：這些提交可能仍未附加任何分支。

如果你同時在不同工具中處理任務，請事先規劃如何避免彼此干擾。[Claude Code 與 Codex 一起使用](https://ailoot.ai/blog/zh-hant-tw/claude-code-codex-together/)介紹了如何讓兩個代理共同協作。

## 若啟動遭到中斷：尋找副本的位置

使用 `--worktree` 啟動可能因下列幾種原因而失敗：

- 先前未啟用此功能，且啟動指令未包含 `--enable worktrees`：Codex 會拒絕使用 `--worktree` 旗標啟動；
- 你所在的資料夾不正確，或沒有提交：如果目前資料夾不是 Git 儲存庫，或尚未包含任何提交，就沒有可用來建立副本的來源；
- 專案明確標記為不受信任的來源：Codex 會拒絕使用 `--worktree` 啟動工作階段。請先確認你開啟的是正確的專案。不要自動變更其信任狀態。

如果工作階段未能連結至新建立的副本，例如程序遭到中斷，工作資料夾不會自動刪除。請先查看工作副本清單，並在刪除任何內容前確認沒有 Codex CLI 工作階段仍在使用此副本：

```bash
git worktree list
```

請先開啟資料夾並儲存需要的變更，再將其刪除。即使代理工作階段未能完成啟動，副本仍可能留存。如果副本存在、已不再需要，且確定沒有任何工作階段正在使用，請從原始儲存庫執行 `git worktree remove`，並指定資料夾路徑，以手動移除副本。不要加上 `--force`：如果副本包含未提交或未追蹤的檔案，指令會拒絕刪除。若指令拒絕執行，請在不解除安全防護的情況下檢查資料夾內容。

更新 Codex CLI 後，請再次執行 `codex --version`，並再次用 `git worktree list` 檢查：實驗性旗標在不同版本間的行為可能有所不同。





更多資源與工具：[Ailoot](https://ailoot.ai/)。

## 常見問題：Codex worktree：為第二個任務建立獨立工作副本 | Ailoot

### 第二個 worktree 會含未儲存或未提交編輯嗎？

不會。本文 CLI 從來源 HEAD 提交開始。未提交修改與新檔留在原資料夾，因此編輯器保存還不足以轉移。

### 乾淨 detached worktree 可以直接刪嗎？

乾淨資料夾仍可能有無具名分支的提交。先保存或轉移提交，確認無工作階段使用，再用一般 Git worktree 移除，不強制越過防護。


## Ailoot · 公司及其專案組合

Ailoot以累積的營運經驗、廣大的客戶群、穩定的服務及持續的KPI管理為基礎。

公司及其專案組合：數百萬客戶，每月銷售額達數十億。

Ailoot將這些營運經驗用於API存取，讓客戶的產品、代理、應用程式及自動化流程使用AI功能。
