Agent.Space 博客

用 Git Worktree 并行跑 Coding Agent:配置、合并与清理

用独立 Git Worktree 和分支运行并行 Coding Agent,约束共享端口、数据库与凭证,验证合并结果,并安全清理目录。

Git Worktree 可以让并行工作的 Coding Agent 拥有不同的代码目录和分支,同时共用仓库对象数据库。它有助于避免误改同一份工作文件,但不是安全沙箱,也不会自动隔离端口、数据库、凭证和外部账号。

本文适用于你有权操作的本地 Git 仓库,不代表 Agent.Space 会自动为每个 Agent 创建独立 Worktree。命令依据 2026 年 9 月 29 日核验的 Git 官方文档。

先决定哪些东西要隔离

同时编辑代码的任务,分别使用独立目录和分支。纯只读审查不一定需要另一个 Worktree,但必须说清楚审查的是哪个准确版本。

按独立的改动范围拆任务。即使文件分开,两个 Agent 同时改同一个 schema,仍然需要协调。添加目录之前,先用多 Agent 编程工作流判断是否真的值得并行。

从明确的基线创建目录

先查看现有工作区:

sh
git status --shortgit worktree list

不要移动或丢弃未提交的工作。下面假设 main 是你明确选择的本地起点,分支名称没有被使用,相邻路径也不存在:

sh
git worktree add -b task/api-validation ../project-api-validation maingit worktree add -b task/ui-errors ../project-ui-errors main

这些命令创建本地分支和目录,不会发布。分别在分配好的路径里启动 Agent,并要求编辑前确认路径和分支:

sh
pwdgit branch --show-currentgit status --short

名称和基线要按实际仓库选择。本地 main 可能落后于远程;开始前应明确更新或选择起点,不能因为叫 main 就当成最新。

防止共享资源互相干扰

资源隔离决定
开发服务器每个运行实例使用不同的可用端口
测试数据库使用独立可丢弃数据,或顺序执行会改状态的测试
凭证不要把生产秘密复制到每个目录
依赖按仓库流程安装,不假设另一个 Worktree 的依赖可以直接共用
外部动作部署、发消息等有影响的动作指定唯一负责人

Worktree 共用 Git 元数据;如果进程有权限,也仍能访问其他路径。执行不可信代码时,还需要合适的沙箱和凭证边界,不能只靠 Worktree。

检查组合之后的结果

每个 Agent 都要交出实际差异、测试记录和未解决假设。按仓库流程只提交本次需要的改动。

通过正常的审阅流程集成,明确解决冲突,并在组合后的版本上运行相关检查。Git 没有文本冲突,不代表两份改动在行为上相容。

Coding Agent 交接指南可作为这一步的记录参考。不要让一个 Agent 为了通过测试,悄悄覆盖另一个 Agent 的工作。

只清理已经保留好的工作

先停止使用该目录的进程,确认工作已提交并按要求保留,再查状态后移除:

sh
git -C ../project-api-validation status --shortgit worktree remove ../project-api-validation

如果 Git 因目录有未提交内容而拒绝,先检查文件,不要直接强制执行。移除 Worktree 目录与删除分支是不同决定;仍用于审阅或恢复时,应保留分支。

需要云端项目工作流时,可看 Agent.Space 的工作方式。如果这种环境适合任务,可以打开 Agent.Space,同时明确并行、任务归属和审批规则。