多 Agent 并行开发时,核心是隔离任务、明确归属、最后由人类做整合。
ai/task-parser-refactor # 单一明确任务
ai/experiment-parser-a # 同一问题的方案 A
ai/experiment-parser-b # 同一问题的方案 B
ai/review-parser-refactor # 给 Review 用的整理分支
实验分支合入前,整理成正常业务分支:
feat/parser-error-handling
fix/parser-empty-input
两个 Agent 各自做了一版方案,先分别看每个分支相对主线改了什么:
git log --oneline main..ai/experiment-parser-a
git diff main...ai/experiment-parser-a # 三个点:只看分支自己的改动
git diff main...ai/experiment-parser-b
再直接对比两个方案:
git diff ai/experiment-parser-a..ai/experiment-parser-b
git range-diff main ai/experiment-parser-a ai/experiment-parser-b
git range-diff 按 commit 对齐两个分支,适合两个方案结构接近时逐个提交看差异。
对比不能只看 diff。两个分支用同样的命令各跑一遍测试,把结果记进任务说明或 PR 描述,作为选型依据。
方案 A 整体胜出时,把它整理成业务分支:
git switch -c feat/parser-error-handling ai/experiment-parser-a
git rebase main
只需要方案 B 里的局部成果时,按 commit 捡:
git cherry-pick <commit-sha>
或者按文件捡:
git restore --source ai/experiment-parser-b -- src/parser/recover.ts
git add src/parser/recover.ts
git commit
预防优先:切分任务时就避免两个 Agent 的范围重叠,路由表、依赖清单、公共配置这类文件尽量只让一个任务碰。
真撞上时按顺序处理:
git rebase main# 需要保留现场时,先打归档 tag
git tag archive/ai-experiment-parser-b ai/experiment-parser-b
# 删除本地分支和对应 worktree
git branch -D ai/experiment-parser-b
git worktree remove ../wt-parser-b
# 推送过远端的话,同时删除远端分支
git push origin --delete ai/experiment-parser-b
落选分支对应的 draft PR 关闭时写明落选原因,下次做同类任务时有据可查。
ai/ 死分支