第十五篇:多分支并行——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/worktrees