SwiftRelay

← 全部冲刺笔记

绿灯前检查:用两个 Git 工作树并行跑编码代理

Agent 快速起步ZH

当你第一次让两个编码代理同时工作时,最容易遇到的问题不是模型能力,而是两个代理共用同一份文件。一个代理修改了配置,另一个代理正好重写同一个文件,结果可能是改动互相覆盖,或者你无法判断某个测试失败来自谁。

Git 工作树可以解决这个问题。它允许一个仓库同时拥有多个目录,每个目录对应一个独立分支和独立的文件状态。两个代理分别进入不同目录,就像两位开发者各自在自己的工作台上写代码。

先把主仓库留作干净的控制台

先进入项目根目录,确认当前分支没有未提交的改动。可以先运行 git status,确保工作区干净。主目录不必交给任何代理长期修改,它更适合用来查看分支、检查差异和执行最后的合并。

假设项目目录叫应用程序,准备让一个代理做新功能,另一个代理处理缺陷修复。两个分支名称应该表达清楚任务,例如 feature/用户设置和 fix/登录重试。不要让两个工作树使用同一个分支,否则 Git 无法安全地同时管理它们。

用两个命令创建彼此隔离的工作树

在主仓库中运行以下命令:

git worktree add ../应用程序-功能 -b feature/用户设置

git worktree add ../应用程序-修复 -b fix/登录重试

这会在主目录旁边创建两个新目录。第一个目录绑定功能分支,第二个目录绑定修复分支。它们共享 Git 的对象数据,所以不需要复制整个仓库,但每个目录都有独立的文件和暂存区。

  • 主目录:应用程序,用于观察和合并。
  • 功能目录:应用程序-功能,只处理用户设置。
  • 修复目录:应用程序-修复,只处理登录重试。

给每个代理一份边界清楚的任务说明

打开第一个终端,进入应用程序-功能,再启动你的编码代理。告诉它只修改用户设置相关代码,完成测试,并在结束前说明改动文件。第二个终端进入应用程序-修复,给另一个代理同样明确的范围。

任务说明最好包含目标、允许修改的目录、验收条件和不应触碰的部分。例如:“添加用户设置页面,保留现有登录流程,补充相关测试,不修改数据库迁移。”边界越清楚,两个代理碰到同一文件的机会越少。

运行期间用状态检查避免交叉改动

每个代理开始工作前,都在自己的目录运行 git status。代理完成一部分后,查看 git diff,确认修改确实属于当前任务。不要因为另一个代理的终端显示了相似文件名,就直接在对方目录里编辑文件。

如果两个任务必须修改同一个核心文件,先让一个代理完成并提交,再把它的结果合并到另一个分支,最后让第二个代理处理冲突。不要让两个代理同时猜测同一段代码应该是什么样子。

提交、检查和合并两个独立结果

每个代理完成后,都应在自己的工作树中运行测试并创建清晰的提交。提交信息可以写成“添加用户设置页面”或“修复登录重试逻辑”。回到主目录后,先查看分支状态,再按顺序合并:

git merge feature/用户设置

git merge fix/登录重试

每次合并后都运行测试。若出现冲突,优先理解两项任务各自的意图,再手动保留正确实现。不要直接接受某一侧的全部内容,因为那可能会丢掉另一项任务。

用 SwiftRelay 给两个代理接入统一模型入口

如果两个代理都需要调用模型,SwiftRelay可以作为统一的按量计费中继,兼容 Claude Code、Codex、Gemini CLI以及OpenAI兼容的软件开发工具。你可以按任务选择 Claude Sonnet 5.5处理较复杂的代码整理,或用 DeepSeek V4 Flash处理较轻量的查错工作。

两个工作树的隔离解决的是文件和分支冲突,SwiftRelay解决的是模型接入和用量管理,两者配合起来就能形成清晰的并行流程。想立即试跑,可以注册 SwiftRelay;新账号会获得少量赠送额度,邀请朋友还可获得其充值金额的百分之十四。

最后,使用 git worktree list 查看所有工作树。任务合并并确认不再需要临时目录后,运行 git worktree remove ../应用程序-功能 和 git worktree remove ../应用程序-修复。这样下一轮并行开发开始前,仓库仍然整洁,分支关系也一目了然。

接着读

又来跑一圈?登录