跳转到主要内容
返回博客

用 Git 工作树规划并行编程 Agent 任务

为编程 Agent 建立独立检出,划分任务范围、检查结果,再合并并行工作的修改。

2026年10月8日

两个 Agent 在不同窗格中运行,意味着有两个可见会话,不意味着文件已经隔离。如果两个终端指向同一仓库目录,编辑会影响同一份工作树。

返回 Herdr GPUI 概览与步骤生成器

先判断任务是否独立

先拆分能够准确描述的任务。例如,一个 Agent 调查失败的测试,另一个解释相关代码。只读调查可以分别进行,汇总发现后再允许编辑。

两个编辑任务需要进一步规划。文档更新和针对性测试可能独立,两个 Agent 重写同一个函数则容易重叠,即使分支名不同也一样。

为每个任务写明负责的文件或区域、预期输出和验证方式,并说明哪些改动需要返回审阅。这是一种建议工作方式,不表示并行会话必然更快或更准确。

准备独立检出

Git 工作树允许一个仓库关联多份工作目录。具体行为见 Git worktree 文档。

先检查仓库:

git status --short
git worktree list

保留现有未提交修改。以当前提交创建的新工作树,不会自动包含主检出中的未提交编辑。

例如,为两个任务创建新分支与相邻目录:

git worktree add -b agent/docs ../project-docs
git worktree add -b agent/tests ../project-tests

名称仅为示例,请使用适合项目且尚未占用的分支和目录。名称冲突时应另选名称或有意连接现有分支,不要为了执行成功而强制重置。

让任务进入正确目录

分别打开每份检出的工作区或窗格,启动 Agent 前核对当前目录。在可见名称或备注中标明任务与分支。

即使提示词提到了工作树,在主检出目录启动的 Agent 仍可能修改错误的文件。需要检查实际工作目录,不能只看预期分支名。

按项目惯例安装依赖。工作树隔离文件与 Git 状态,不会自动隔离数据库、账号、开发服务端口或其他服务。只处理当前任务确实涉及的共享资源。

给每个 Agent 具体任务

文档任务可要求:根据已验证行为解释指定功能,只修改相关文档,并列出尚未确认的事实。

测试任务应明确要保护的行为、需要的回归场景和相关检查。不要仅因附近有其他代码,就扩大到无关重构。

发现任务重叠时,先暂停并调整划分,再考虑合并。让发现与实现决策保持可见,方便审阅者理解每项修改的原因。

检查后再合并

查看每份检出的差异和实际执行过的验证。显示完成表示该任务值得检查,不代表实现已经获得认证。

通过项目原有审阅流程整合修改。合并影响行为时,再运行受影响的检查。保留任务检出,直到修改已经保存和验证;删除工作树应是有意进行的清理操作。

首次本地会话可参考macOS 安装指南。会话或连接异常时,请使用连接排障清单。