第 03 模块 · 1 节

一个任务一个分支:理解工作树

《Orca 基础入门》03 工作树模型 · 本节时长 25 分钟

核心心智模型Orca 是 worktree-native 的:不做「在一个 checkout 上切分支 + stash」,而是每个任务都通过 git worktree 拥有一份独立的磁盘副本。这正是并行 Agent 安全的原因。

三层 ref 模型

是什么 默认值
仓库的 base ref 每个新工作树分支的起点 通常 origin/main
工作树的 start-from ref 该工作树从哪个 ref 分支出来 通常是 base ref
工作树自己的分支 任务的实际改动落在哪 由任务名派生

每个工作树有:自己的分支、自己的磁盘文件、自己的 Agent 终端。删除工作树会同时删除目录和分支(需确认);若分支上还有未合并提交,git 会保留分支,Orca 提供「Review N Branches」让你决定去留。


任务的生命周期

一个工作树完整经历五个阶段:

Create → Work → Review → Ship → Archive/Delete
  1. Create —— 任务名、start-from 选择器、可关联 GitHub PR / Linear / Jira / GitLab 链接
  2. Work —— Agent 终端、编辑器标签、浏览器标签、终端面板全部作用域限定在这个工作树
  3. Review —— 相对 start-from ref 的 diff 视图、Annotate AI Diff、Attribution(来源标注)
  4. Ship —— 内联 commit、push、开 PR、等 CI 检查
  5. Archive / Delete —— 一键删除工作树与分支

Start-from 选择器

创建工作树时选择分支起点:

  • base ref(快速路径,大多数情况用它)
  • 另一个本地分支 —— 适合在评审中的 PR 之上叠加工作
  • 某个 commit SHA
  • 已存在的远程分支 —— Orca 会 fetch 并 checkout

侧边栏的布局逻辑

  • 工作树按项目分组;项目行可展开为你在推进的工作树
  • 头部有筛选输入:按主机、项目、休眠状态、默认分支、CLI 创建、其他客户端等过滤
  • Cmd+J Jump Palette 不受隐藏筛选影响——输入查询仍能找到被过滤掉的工作树
  • 支持多选:按住 Cmd/Ctrl 点击加选、Shift 连续选,右键批量操作
  • 右击工作树可 Archive / Sleep / Delete;Sleep with DescendantsDelete with Descendants 处理嵌套子工作树

用普通 git 操作工作树

每个 Orca 工作树都是真实 git worktree

git worktree list                 # 列出全部
git -C <path> status              # 查看某个工作树
git -C <path> rebase origin/main  # 普通 rebase 完全可用

Orca 会在下次渲染时自动感知外部 git 变化。用 git worktree remove 手动删掉也会被识别并清理内部状态。


落地练习:检验你的理解

  1. 运行 git worktree list,找出 Orca 建的工作树及其目录
  2. 新建一个工作树,start-from 选一个指定 commit SHA
  3. git -C <该工作树> log --oneline -3 确认起点正确
  4. 在侧边栏试一次多选(Cmd/Ctrl+点击)并批量休眠

怎么判断做对了?——你能解释「base ref 与 start-from ref 的区别」,并说出工作树五阶段生命周期。

卡住了怎么办? 不理解 worktree 的 git 语义就先去 git help worktree;Orca 只是帮你自动执行这些命令。


小结

  1. 三层 ref:base ref → start-from ref → 任务分支
  2. 五阶段生命周期:Create → Work → Review → Ship → Archive/Delete
  3. 侧边栏按项目分组,支持筛选、多选、批量操作
  4. 工作树是真实 git worktree,普通 git 命令全能
  5. 删除会带走目录与分支,未合并提交会被保留并提示评审

下一节,解决「新工作树没有依赖」的问题。