第十五篇:多分支並行——Git Worktrees 工作區
Hermes Agent 官方教學第十五篇:用 Git Worktrees 讓多個 AI 在同一個專案裡並行作業。
這篇講的是:如何用 Git Worktrees 給每個 Hermes 智慧體一個獨立的「工位」,讓它們在同一專案裡並行工作互不干擾。
你是不是遇到過這種情況:同一個專案,想同時跑兩個實驗——一個重構程式碼,一個修 bug,結果兩個智慧體在同一個資料夾裡改來改去,互相覆蓋檔案,亂成一鍋粥?
Git Worktrees 就是解決這個問題的「分房間」工具。它讓你從同一個儲存庫裡「變」出多個獨立的資料夾,每個資料夾都有自己的分支和檔案副本,就像給每個智慧體分配了一間單獨的辦公室,各幹各的,互不打擾。
第1步:建立一個 Worktree(新工位)
假設你的專案在 /path/to/your/repo,打開終端機,輸入:
cd /path/to/your/repo
git worktree add ../repo-feature feature/hermes-experiment
這條指令會做兩件事:
- 在儲存庫外面新建一個資料夾
../repo-feature - 在裡面建立一個新分支
feature/hermes-experiment
現在,你有了一個全新的、乾淨的「工位」。
第2步:在 Worktree 裡啟動 Hermes
cd ../repo-feature
hermes
Hermes 會把 ../repo-feature 當作專案根目錄,所有檔案修改、工具呼叫都在這個資料夾裡進行。它的回滾歷史(/rollback)也是獨立的,不會影響主儲存庫。
第3步:並行執行多個智慧體
想同時跑兩個實驗?再建一個工位:
git worktree add ../repo-experiment-b feature/hermes-b
然後開兩個終端機:
# 終端機1
cd ../repo-experiment-a
hermes
# 終端機2
cd ../repo-experiment-b
hermes
兩個智慧體各幹各的,一個改 feature/hermes-a,一個改 feature/hermes-b,互不干擾。非常適合批次重構、對比不同方案。
第4步:幹完活,清理工位
實驗結束,把分支合併回主分支後,清理工位:
cd /path/to/your/repo
git worktree remove ../repo-feature
注意:如果有未提交的變更,Git 會拒絕刪除,除非你強制(--force)。刪除工位不會自動刪除分支,分支可以留著做參考。
偷懶技巧:hermes -w 自動工位模式
不想手動建工位?Hermes 自帶 -w 參數,自動幫你建立臨時工位:
cd /path/to/your/repo
hermes -w
它會自動在 .worktrees/ 下建一個臨時資料夾,開一個獨立分支,跑完即走。配合單次查詢:
hermes -w -z "修復 issue #123"
並行跑多個智慧體?每個終端機都執行 hermes -w,自動各得一個獨立工位,省心省力。
最佳實踐小結
- 一個實驗一個工位:每個大變更建獨立分支,PR 小而清晰
- 頻繁提交:用 git 記錄里程碑,用
/rollback兜底工具誤操作 - 別在裸儲存庫根目錄跑 Hermes:用工位目錄,職責分明
總結:Git Worktrees 就是給每個智慧體一間獨立辦公室——獨立分支、獨立檔案、獨立回滾歷史,並行工作不打架。配合 hermes -w 自動模式,更是零門檻上手。
下篇預告:智慧體跑完活,怎麼把成果安全地合併回主分支?下一篇我們聊聊 分支合併與衝突解決,敬請期待!
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/git-worktrees