跳到正文
Neaptide工作室
博客

同一项目运行多个智能体: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 命令。

常见问题

要点速览

Worktree 能阻止另一个智能体的所有操作吗?

不能。它管理工作副本,并不是隔离的虚拟机。共享服务、机器资源和可访问路径仍需分别控制。

同时运行多少个智能体合适?

先运行两个。如果改动产出速度超过审核速度,更多并行只会拉长审核队列。应衡量获得可接受结果的时间,而不是打开了多少会话。

项目公共规则放在哪里?

把团队指令保存在仓库中,例如 CLAUDE.md (/zh/blog/claude-md-guide)。这样新工作副本会获得起始提交中的规则版本。