Git worktree

git worktree 管理器
適用於 Claude Code、Codex 和每一個代理 CLI

在工單上勾選一個框,或在新增代理時選一個 worktree,它就會在自己的檢出、自己的分支上工作。多個代理可以同時修改同一個儲存庫,互不碰對方的檔案。

在代理啟動之前,AgentsRoom 會安裝依賴,並把你的 .env 檔案複製到新的 worktree 裡,讓它立刻就能建置並執行測試。完成後,無論在電腦上還是在手機上,你都可以在「更改」分頁裡審查、提交、推送併合並這個 worktree。

一個儲存庫,每個代理一個檢出
主檢出main
  • 後端代理.worktrees/fix-login-redirect已準備
  • 前端代理.worktrees/settings-dark-mode工作中
  • QA 代理.worktrees/agents/qa審查

三個代理,三個 worktree,一個儲存庫:每個檢出都在其代理啟動前準備好,然後各自審查、各自合併。

兩個代理在同一個檢出裡,就像兩個人在同一個檔案裡打字。一個在編輯到一半時,另一個跑起了格式化工具;一個在另一個腳下切換了分支;最後你審查的 diff 把兩份工作混在了一起。git worktree 解決的就是這個問題:它是同一個儲存庫的第二個檢出,有自己的資料夾和自己的分支,共享歷史,但不共享檔案。

建立一個只需要一條 git 命令。難的是同時和十個打交道:新的 worktree 裡沒有 node_modules 也沒有 .env,所以代理的第一次建置會失敗;沒有任何東西告訴你哪個代理在哪裡工作;工作完成後,你還得找到那個資料夾,審查、提交,再合並回去。

AgentsRoom 接管了這整個生命週期。待辦工單或代理請求一個 worktree 後,AgentsRoom 會從最新的基礎分支在專案內的 .worktrees/ 下建立它,做好準備,在裡面啟動代理,並在「更改」分頁裡給你一個選擇器,用來審查、提交、推送和合並。無論由哪個 CLI 執行代理,效果都一樣:Claude、Codex、GitHub Copilot CLI、Cursor 以及另外 10 個代理 CLI。

worktree 始終是可選的。沒有 worktree 的代理照舊在專案資料夾裡工作,你可以按工單、按代理或按代理模板來決定是否使用。

worktree 管理器能做什麼

從任務請求一個隔離的檢出,到它的分支被合並回去。

每個待辦工單一個 worktree

在工單上勾選「為此任務在獨立的工作樹中編碼」,選一個專案已有的 worktree 或輸入一個新的分支名稱,啟動工單時就會建立 worktree,並在裡面啟動代理。

新增代理時選擇 worktree

「新增代理」視窗裡的「工作區」卡片會列出「主幹」、專案已有的 worktree 和「新建」。你自己用 git worktree add 建立的 worktree 也會列在其中。

模板的每個代理都有一個新的 worktree

在已儲存的代理或預設配置上開啟「每個代理新建一個 worktree」,從它生成的每個代理都會有自己的分支,命名為 agents/<模板>,然後是 -2、-3,所以副本之間永遠不會共用一個檢出。

第一次啟動就能建置

在新的 worktree 裡啟動第一個代理之前,AgentsRoom 會複製它需要的被 git 忽略的檔案(預設是所有 .env 檔案),並執行根據你的 lockfile 檢測出的安裝命令:yarn、pnpm、npm、bun、uv、poetry、pipenv、bundle 或 composer。

審查、提交併推送每個 worktree

「更改」分頁頂部的「工作樹」選擇器會把 diff、「審查」、「提交」、「拉取」和「推送」切換到那個檢出上。點選擁有獨立 worktree 的代理的徽章,會直接開啟它。

工單完成時合並回去

開啟「任務完成後自動合併到當前分支」後,把工單標記為「已完成」就會合並它的分支。再開啟「工作完成時自動提交」,代理留下的未提交內容也會一併進入合併。

AgentsRoom 任務表單:勾選了「為此任務在獨立的工作樹中編碼」,專案已有的 worktree fix-checkout-cache 和 free-shipping-coupon 以標籤形式列出,分支名稱 update-checkout-total-cache 已根據標題預先填好,並勾選了「任務完成後自動合併到當前分支」
在任務上勾選一個框:選一個專案已有的 worktree,或保留根據標題預填的分支名稱,再決定任務完成後是否把分支合並回去。

工作原理

一個工單從表單到合併的全過程。

  1. 1

    在工單上請求一個 worktree

    在工單表單的「執行配置」中,勾選「為此任務在獨立的工作樹中編碼」。從標籤中選一個已有的 worktree,或保留「分支名稱」欄位:在你修改之前,它會根據標題自動預填,任務啟動時就成為一個新的 worktree。

  2. 2

    啟動工單

    AgentsRoom 獲取基礎分支(遠端的預設分支,或在專案設定中設定的「工作樹的基礎分支」),在 .worktrees/<branch>/ 下建立 worktree,並把這個資料夾加入克隆的 .git/info/exclude,這樣它永遠不會在你的主檢出中顯示為未跟蹤檔案。

  3. 3

    先準備 worktree,再啟動代理

    代理的終端會顯示安裝命令及其輸出,一條提示告訴你複製了多少個被忽略的檔案,然後代理 CLI 在 worktree 中啟動。每個 worktree 只會做一次;安裝失敗也不會阻止代理,錯誤會留在它的終端裡。

  4. 4

    審查併合並

    在「更改」分頁中選中這個 worktree,閱讀 diff 並提交。把工單標記為「已完成」,如果開啟了自動合併,它的分支就會被合併到當前分支;確認資訊會顯示結果。worktree 本身仍保留在磁碟上,方便你最後再看一眼。

AgentsRoom 的「更改」分頁,「工作樹」選擇器已展開,顯示「主幹」和兩個代理的 worktree,選中了 fix-checkout-cache,下方列出它改動的檔案 src/checkout.js
「更改」分頁的「工作樹」選擇器:選中某個代理的 worktree,diff、提交和推送就都作用於那個檢出。

Claude Code 和 Codex 已經會建立 worktree。區別在這裡。

Claude Code 有自己的引數:claude --worktree feature-auth 會在名為 worktree-feature-auth 的分支上建立 .claude/worktrees/feature-auth,複製 .worktreeinclude 檔案中列出的被 git 忽略的檔案,並在你退出時詢問保留還是刪除這個 worktree。它的文件寫得很清楚:worktree 是一個全新的檢出,依賴需要你自己安裝,或者讓 Claude 來裝。子代理也可以透過 isolation: worktree 各自獲得一個 worktree。

Codex 應用在 $CODEX_HOME/worktrees 中管理 worktree,從你選擇的分支以分離 HEAD(detached HEAD)狀態啟動它們,同樣會讀取 .worktreeinclude,如果你選了本地環境就會執行它的設定腳本,預設保留最近的 15 個。Handoff 可以把一段對話及其程式碼在 Local 和某個 worktree 之間移動。codex-cli 0.162.1 也有一個 --worktree 引數。

兩者都做得不錯,但都只屬於一家廠商。AgentsRoom 並不取代它們:它把同樣的隔離提升一層,放到你的工單和代理所在的地方,一次覆蓋所有 CLI,在代理看到檢出之前就把它準備好,並把審查、提交和合並都留在你已經在用的視窗裡。已於 2026 年 10 月在 Claude Code 2.1.299 和 codex-cli 0.162.1 上驗證。

需要知道的事

  • worktree 從不會被自動刪除,這是有意為之,方便你審查。它們會在 .worktrees/ 下越積越多;用完後用 git worktree remove 刪除,但絕不要在代理還在裡面執行時刪除。
  • 自動合併遇到衝突時會記錄一條警告,工單仍會移到「已完成」:這次合併需要你手動解決。
  • worktree 需要專案根目錄是一個 git 儲存庫。只是把幾個儲存庫並排放在一起的資料夾沒有 worktree:請把每個儲存庫作為單獨的專案開啟。
  • 在 SSH 伺服器上開啟的專案,其 worktree 建立在伺服器上,沒有安裝步驟。代理執行在遠端主機上的本地檢出不能使用 worktree,工單會提示你這一點,而不是直接啟動。
  • QA 代理從不擁有自己的 worktree:它在其主代理的檢出中測試,因為全新的 worktree 裡不會有它要測試的未提交工作。

常見問題

什麼是 git worktree,為什麼要給 AI 代理一個?

git worktree 是同一個儲存庫的第二個檢出,有自己的資料夾和自己的分支,與你的主檢出共享歷史和遠端儲存庫。給每個 AI 程式設計代理一個 worktree,意味著每個代理都在編輯、建置和提交自己的那份檔案副本,所以兩個同時工作的代理永遠不會互相覆蓋,也不會在對方腳下切換分支。我們的部落格有一篇更詳細講 git 這一面的指南:Git worktree:讓多個 AI agent 並行工作而不互相沖突的基礎。

Claude Code 內建了 worktree 嗎?

是的。claude --worktree <名稱>(或 -w)會在名為 worktree-<名稱> 的分支上建立 .claude/worktrees/<名稱>,複製 .worktreeinclude 中列出的被 git 忽略的檔案,並在你退出時詢問保留還是刪除這個 worktree;子代理可以透過 isolation: worktree 在自己的 worktree 中執行。它不會安裝你的依賴。在 AgentsRoom 中,你可以繼續使用它,也可以讓工單或代理來請求 worktree,這樣還會把它準備好,並顯示在「更改」分頁裡(已在 Claude Code 2.1.299 上驗證)。

Codex 支援 worktree 嗎?

Codex 應用支援:它在 $CODEX_HOME/worktrees 中以分離 HEAD 狀態建立受管理的 worktree,複製 .worktreeinclude 中列出的被忽略檔案,可以執行本地環境的設定腳本,保留最近的 15 個,並透過 Handoff 在 Local 和某個 worktree 之間移動對話。codex-cli 0.162.1 有一個 --worktree 引數,可以在一個新的受管理 worktree 中執行會話。AgentsRoom 給 Codex 代理分配 worktree 的方式和其他任何代理一樣,從工單或「新增代理」視窗即可。

哪些代理 CLI 可以在 AgentsRoom 的 worktree 中執行?

全部都可以:worktree 只是代理的工作目錄,不管在裡面執行的是哪個 CLI,所以 Claude、Codex、GitHub Copilot CLI、Cursor 以及另外 10 個代理 CLI 在其中的工作方式都一樣。Kimi Code 和 Antigravity CLI 按確切路徑信任資料夾;AgentsRoom 會在啟動前把新的 worktree 登記為它們信任的資料夾,這樣它們就不會停在信任確認問題上。

我需要在每個 worktree 裡執行 yarn install 並複製 .env 嗎?

不需要。在新的 worktree 裡啟動第一個代理之前,AgentsRoom 會從主檢出中複製與「從此檢出複製的檔案」匹配的被 git 忽略的檔案(預設是所有 .env 檔案),並執行根據根目錄 lockfile 檢測出的安裝命令。兩者都在「專案設定 > Git > 準備新的工作樹」中設定,你可以在那裡替換命令,例如 pnpm install && pnpm build:deps。worktree 中已存在的檔案永遠不會被覆蓋。

如何審查併合並代理在其 worktree 中完成的工作?

開啟「更改」分頁,在頂部的「工作樹」選擇器中選中這個 worktree:檔案列表、diff、「審查」、「提交」、「拉取」和「推送」隨後都作用於那個檢出。對於工單,「任務完成後自動合併到當前分支」會在你把它標記為「已完成」時合併它的分支,而「工作完成時自動提交」(設定 > Backlog)會先提交代理留下的內容,讓合併帶上全部工作。

worktree 在哪裡,會被清理嗎?

在專案內的 .worktrees/<branch>/ 下,從遠端的預設分支建立,除非你在專案設定中設定了「工作樹的基礎分支」。這個資料夾會被加入克隆的 .git/info/exclude,而不是你的 .gitignore,所以它不會進入你的提交。worktree 從不會被自動刪除:用完後用 git worktree remove 刪除即可。

我能在手機上或遠端伺服器上使用 worktree 嗎?

兩者都可以。在手機上,「更改」頁面有同樣的「工作樹」選擇器;從手機啟動一個請求了 worktree 的工單時,它會在 worktree 中執行,和其他工單一樣由電腦負責準備。在 SSH 伺服器上開啟的專案,其 worktree 建立在伺服器上,沒有安裝步驟。代理執行在遠端主機上的本地檢出不能使用 worktree,工單會告訴你這一點,而不是直接啟動。

延伸閱讀

你可能還會喜歡

任務管理

用拖放方式編排 AI 代理的視覺化看板。在 TODO 中建立任務,拖到 In Progress 即可自動派生一個 Claude 代理,並透過 Pending 和 Done 列追蹤完成進度。以待辦驅動的並行 AI 程式設計開發。

按代理審查

單獨審查每個AI代理的程式碼變更。AgentsRoom追蹤哪個Claude Code代理修改了哪些檔案。按代理篩選diff, 逐個審查,按代理提交以保持乾淨的git歷史。

多專案 · 多代理 · 並行

AgentsRoom 在一個視窗裡跨多個專案並行執行 AI 代理:Claude、Codex、GitHub Copilot CLI、Cursor 以及另外 10 個代理 CLI。角色配色、即時狀態、按專案計數、原生桌面和行動版通知。它是 12 個終端分頁的視覺化替代品,也是散落在 iTerm2、Warp 和 tmux 裡那一團 Claude Code 會話的終結者。

自定義代理

從 14 個內建代理角色中選擇,新增來自 The Agency 的專業代理,或建置您自己的自定義 AI 編碼代理及其系統提示。然後透過聊天與您的團隊分享您的代理,並將其發布到社群,以便每個人共同提升。

Multi-Agent Workflow • Handoff • Feedback Loop

AgentsRoom Agent Teams 把 AI 編碼代理串聯成一支真正的工程團隊。視覺化工作流程編輯器 (n8n 風格畫布) 用來連線 Dev、QA、PM、Security 和 DevOps 角色。自動交接,附帶摘要、git diff、風險與測試提示。機器驗證的品質門 (由你的測試套件說了算,而不是代理), 並行的 QA 與 Security 審查分支,條件連線,反饋迴圈,迴圈上限。按團隊選擇角色的執行方式:一個代理在角色之間變形並保留全部上下文,或者每個角色一個線上代理,即時互相發訊息。這是你在 Claude、Codex、GitHub Copilot CLI、Cursor 以及另外 10 個代理 CLI 上的代理一直缺少的多代理編排器。

給每個代理一個屬於自己的檢出

下載適用於 macOS、Windows 或 Linux 的 AgentsRoom,讓多個代理在同一個儲存庫裡工作而互不干擾。

免費免費下載

配套應用:隨時隨地監控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

獲取擴充功能
Chrome Web Store

把 Bug 和需求直接傳送到您的公開待辦清單。

多專案管理
多供應商
多代理執行
即時狀態
檔案差異與提交
行動應用
即時預覽
代理團隊
瀏覽器自動化
Backlog 驅動開發
提示詞庫
技能庫
檢視所有功能