多个 Agent 同时改仓库,最怕文件互相覆盖、分支状态混成一团。Orca worktree 把任务放进独立 git 工作区,再配合终端分屏和 diff 比较,让并行真正可控。本文讲清创建、赛马与清理的生命周期。
一、先搞懂 git worktree:Orca 隔离的地基

Orca 的并行不是在同一个目录里多开几个终端。它会为任务创建真实的 git worktree,并检出对应分支。每个 Agent 在自己的工作目录里改文件,最终形成独立 diff。于是三个 Agent 即使接到同一任务,也不会把彼此尚未完成的修改当成上下文。
这层隔离把试错成本压低了:你可以让不同 Agent 探索不同路线,再比较结果;某一路偏离需求,丢弃它不会拖乱其他任务。Orca 的 Yolo 权限也建立在“一次性可弃”的 worktree 思路上,合并前可以 cherry-pick 需要的部分,也可以整个放弃。不过,是否使用 Yolo 仍应按自己的风险判断在 Settings → Agents → Agent Permissions 中选择 Yolo 或 Manual。
worktree 也不局限于本机。Orca 的 SSH Worktree 可以让 Agent 在远程机器运行,并提供自动重连与端口转发。无论执行发生在本地还是远端,桌面里的仓库、worktree 和 Agent 状态仍围绕任务组织;隔离的目标没有变,都是让一次实验拥有自己的工作现场。
二、创建一个 worktree:命名、base ref、选 agent
先通过侧边栏 Add Repo 添加仓库。Orca 会读取 git 状态,并用默认分支作为 base ref。然后点击仓库名旁的“+”,输入任务名,选择 start-from ref;常见起点是 origin/main。如果名称留空,Orca 会用海洋生物替你命名。任务名最好能直接说明目的,分屏时才不会反复辨认。
创建完成后,新 worktree 终端会带 Agent 下拉框。选择 Claude Code、Codex、Cursor 或其他受支持的 Agent,Orca 会在正确工作目录启动它的 CLI,并转发订阅凭证。此时再发送任务,Agent 的改动就只落在自己的工作区和分支中。需要从一个任务继续拆子任务时,CLI 还提供 parent worktree 关系 flag;不需要父关系时可使用 no-parent。
base ref 是三路结果能否公平比较的起点。准备赛马时,让三个 worktree 选同一个 ref,再给出同一份 prompt;做连续任务时,则先确认上一项改动已经进入你认可的分支。起点含糊,后面看到的 diff 就会混入历史差异,再强的 Agent 也很难被公平评估。
三、分屏 split:一屏盯住多个 Agent

隔离解决“互不打架”,分屏解决“看得见”。把 worktree 标签拖到某个 pane 的右侧或下侧,就能并排查看多个终端。Orca 的终端采用 Ghostty 风格、WebGL 渲染,支持无限分屏,重启后保留滚动历史。你可以把主实现放在大面板,把测试或审查放在旁边,按任务重要性安排视野。
分屏的意义不是让人同时阅读三段高速输出,而是快速发现谁在工作、谁已完成、谁在等待。Orca 还有通知和未读状态,离开电脑时也可通过移动伴侣 App 查看 worktree 与 Agent 的 working、done、waiting 状态。回到桌面后,再聚焦真正需要决策的面板。
实际排布可以围绕决策节奏:正在实现的终端放在主 pane,另外两路保持可见;某个 Agent 等待回复时,再把注意力切过去。滚动历史会在重启后保留,所以没必要为了怕丢输出而把所有 pane 永久放大。分屏负责态势感知,diff 负责最终验收,两者不要混为一谈。
四、三个 Agent 竞赛同一个任务

赛马模式的操作很直白:从同一 base ref 创建三个 worktree,分别选择 Agent,再粘贴同一份 prompt。由于起点与要求一致,最后会得到三条分支和三份 diff。它适合你尚未确定最佳实现、希望比较完成度,或想避免第一条思路绑架判断的场景。
观察阶段用分屏,决策阶段看 diff。先排除超范围修改,再核对任务要求,最后选择离目标最近的方案。对候选结果仍有意见时,可在 Annotate AI Diff 中给具体行添加评论并发回 Agent。这样反馈和改动位置绑定,比在另一个窗口里重新描述问题更清楚。
五、worktree 的生命周期:一次性、可弃、合并即删
一个健康的 worktree 应该对应一个边界明确的任务:从指定 ref 创建,交给 Agent 工作,通过 diff 验收,然后进入提交或丢弃。胜者可以直接 commit、push;如果只需要某些改动,可在合并前 cherry-pick。落选的两个 worktree 则一键删除,分支随删。
不要把临时 worktree 当成永久收藏夹。长期堆积会让任务名、分支和终端状态重新变得难辨认。提交后及时清理,下一轮再从可信 base ref 出发,才能维持“每个工作区只讲一个故事”的可读性。一次性、可弃不是草率,而是允许实验拥有明确的结束条件。
六、worktree 命令速查
除了界面操作,Orca CLI 也能列出、定位、创建和删除 worktree。下面只列官方给出的常用命令;需要机器读取结果时,所有命令都可以追加 --json,完整参数可用 orca <cmd> --help 查看。
# 查看仓库下的 worktree
orca worktree list --repo id:<id>
# 查看运行情况与当前位置
orca worktree ps
orca worktree current
orca worktree show --worktree active
# 创建普通任务或直接带 Agent 与 prompt 启动
orca worktree create --repo id:<id> --name fix-login
orca worktree create --name child-task --agent codex --prompt "..."
# 写入备注并删除不再需要的 worktree
orca worktree set --worktree active --comment "..."
orca worktree rm --worktree id:<id> --force
选择 worktree 时,可用 active、current,也可按绝对路径、分支、issue 或 id 定位。创建时提供的启动 flag 包括 agent、prompt 与 setup;父子关系则使用 parent-worktree 或 no-parent。自动化脚本中先确认目标,再执行删除,避免把“可弃”误解成“不必核对”。
延伸阅读
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网

评论(0)