同一项目运行多个智能体:Git worktree 使用指南
Neaptide · 2026年9月20日 · 8 分钟阅读
使用 Git worktree 为 AI 编程任务分离目录、分支与环境,并检查和合并修改。
本文目录

两个智能体同时修改同一个工作目录时,并行开发很容易变得混乱:一个在修复表单,另一个在重构组件,测试面对的却是一组尚未完成的混合改动。Git worktree 可以把文件分开,让每项任务拥有独立目录和分支。
Worktree 是同一 Git 仓库的额外工作副本。 它们共享历史记录,但检出的分支和工作文件相互独立,因此可以同时开发多项改动。具体机制和命令见 Git 手册。
哪些任务适合并行
先从两项独立改动开始,例如一个智能体修复表单错误处理,另一个更新帮助文案。如果两者都要改数据结构或同一个公共组件,先确定共同接口,再按依赖顺序处理。
| 适合分开执行 | 应先明确顺序 |
|---|---|
| 表单修复与文档更新 | API 改动与依赖它的界面 |
| 独立模块的测试 | 同一组件的两次重构 |
| 排查错误与无关文案修改 | 数据迁移与适配新结构的代码 |
独立目录能避免未完成文件混在一起,却不能解决逻辑矛盾。两项改动即使在 Git 中顺利合并,也可能共同破坏应用行为。
创建两个工作副本
示例假设仓库已经存在且至少有一个提交。请在主目录执行命令,确保分支名和相邻目录名尚未使用。
git status --short
git worktree add -b ai/form-fix ../project-form HEAD
git worktree add -b ai/docs-update ../project-docs HEAD
git worktree list两个副本都从当前 HEAD 提交开始,原目录中尚未提交的改动不会被带过去。如果两项任务都依赖这些改动,应先准备一致的起始版本;不要只为照做示例就提交他人尚未完成的工作。
在两个独立终端分别进入新目录并启动智能体。使用 Claude Code 时:
cd ../project-form
claude第二个终端打开 `../project-docs`。Claude Code 也提供直接在 worktree 中启动的方式,见并行会话指南。手动方式的优势是目录和分支独立于客户端,容易检查。
给每个智能体明确边界
说明预期结果和修改范围。例如给第一个智能体:
修复表单提交失败时的提示。在当前 worktree 中工作,找到表单及其测试,保留成功提交行为。不要修改 API 结构或文档。展示 diff 和检查结果,不要合并分支。
给第二个智能体安排文档任务,并明确不要修改表单代码。以上均为教学任务,请使用自己项目中的实际路径、命令和验收条件。
检查每个副本的运行环境。依赖和个人配置文件可能需要单独准备。两个开发服务器应使用不同端口。如果它们共用测试数据库,应隔离数据,或者避免同时运行会修改数据的场景。
如何验收结果
分别查看每项任务的 diff,先判断是否符合要求,再检查测试结果。随后在各自分支中提交审核通过的改动。
将分支逐个合并到选定的集成分支。第二次合并后,再验证完整用户流程。两条独立分支分别通过测试,并不能证明组合后仍然正确。
出现冲突时,先确定必须保留的行为。不要让智能体机械地接受某一方的全部改动,这可能丢掉另一项任务的一部分。
何时删除 worktree
先确认需要的改动已经保存并验收,目录中没有未保存文件,然后在主工作副本执行:
git worktree remove ../project-form
git worktree remove ../project-docs不使用强制选项时,Git 会拒绝删除包含未提交改动的普通 worktree。不要为了消除报错就添加 `--force`。删除工作副本后,分支仍然保留,应单独决定如何处理。见 worktree 命令。