LogoSteve
  • 博客
  • 关于我
Multi-Agent Worktree 是 Git Worktree 么?
2026/03/30

Multi-Agent Worktree 是 Git Worktree 么?

是的,就是把 git worktree 用在 Agent 协作上:同一个仓库,多份工作目录,尽量别让并行改动互相踩文件。

是的,本质上就是 git worktree。

在多 Agent 架构里,之所以要用它,是因为它非常适合解决一个核心问题:多个 Agent 并行修改同一个仓库时的文件冲突。

真正的问题是共享工作区

如果所有 Agent 都直接在同一个工作区里改代码,问题会很快出现:

项目目录: /project
  └── src/server.py

Agent A 修 bug: 改第 41 行
Agent B 加功能: 改第 55 行

两个 Agent 同时操作同一个工作区副本
最终就会面临覆盖、脏状态、难以回滚等问题

多个 Agent 同时编辑同一工作区导致冲突

Worktree 改变的是什么

git worktree 允许同一个仓库在不同目录下同时 checkout 多个分支。

主仓库: /project

git worktree add ../project-agent-a agent-a-branch
git worktree add ../project-agent-b agent-b-branch

结果:
/project/            -> 主控制器使用
/project-agent-a/    -> Agent A 独占
/project-agent-b/    -> Agent B 独占

这些目录共享同一个 Git 数据库,但每个目录都有自己的:

  • 工作区文件
  • 分支
  • 暂存区

也就是说,Agent A 和 Agent B 可以并行工作,但不会直接踩到彼此的工作区文件。

多个工作目录共享同一份 Git 数据库

为什么不直接 clone 仓库?

如果你用 git clone,每复制一次仓库,就会复制一整份 .git 数据库。

而 git worktree add 只是给你额外开出一个工作目录,它仍然依附于同一个仓库。

git clone:
/project-copy-1/.git
/project-copy-2/.git

git worktree:
/project/.git           -> 唯一一份 Git 数据库
/project-agent-a/       -> 额外工作目录
/project-agent-b/       -> 额外工作目录

这也是它特别适合“一个仓库,多条并行工作流”的原因。

git clone 与 git worktree 的成本对比

放到多 Agent 架构里,流程通常是这样

  1. Orchestrator 收到一个可以拆分的任务
  2. 为每个子任务创建独立 worktree 和分支
  3. 把不同 Agent 分派到不同目录
  4. 各自完成修改并提交
  5. 回到主仓库统一合并
  6. 任务结束后删除这些 worktree
git worktree add ../task-refactor -b refactor-user
git worktree add ../task-fix-pay -b fix-payment

Agent A -> ../task-refactor
Agent B -> ../task-fix-pay

完成后:
git merge refactor-user
git merge fix-payment
git worktree remove ../task-refactor
git worktree remove ../task-fix-pay

多 Agent 协作下的 worktree 流程图

说到底,它就是把 git worktree 当成隔离层来用:一个仓库,几份互不干扰的工作目录,最后再统一合并。

全部文章

作者

avatar for Steve
Steve

分类

  • Development
真正的问题是共享工作区Worktree 改变的是什么为什么不直接 clone 仓库?放到多 Agent 架构里,流程通常是这样

更多文章

Prompt Caching vs 工具结果替换
AI

Prompt Caching vs 工具结果替换

Prompt caching 优化的是重复前缀的计费,工具结果替换优化的是上下文体积。两者都能省钱,但省的是不同部分。

avatar for Steve
Steve
2026/03/30
如何看待 Agent 记忆?
AI

如何看待 Agent 记忆?

我更倾向按需记忆,而不是默认自动记忆。难点从来不是“要不要记”,而是记什么、什么时候记,以及怎么避免记忆变成噪音。

avatar for Steve
Steve
2026/03/30
Agent vs Harnessed Agent
AIDevelopment

Agent vs Harnessed Agent

Claude Code 适合高交互的探索;要把 Agent 拉进长程、可恢复、可审计的工程流程里,最后还是得靠代码去约束执行。

avatar for Steve
Steve
2026/03/30
LogoSteve

Steve 的博客

© 2026 Steve