第 01 模块 · 3 节

提交、推送与从 Orca 直接开 PR

《Orca 进阶实战》01 评审与交付 · 本节时长 26 分钟

不离开 Orca 就交付评审、暂存、提交、推送、开 PR、等检查,全在 diff 视图旁的 Source Control 面板里完成。评审完直接进入交付,不让上下文断掉。

提交(Commit)

  • 从 diff 里按 hunk 或按文件暂存
  • 底部面板写提交信息,或用 Generate with AI 让 Orca 根据暂存改动起草
  • 焦点在 Source Control 时 Cmd+Enter(macOS)/ Ctrl+Enter 提交
  • 仓库的 pre-commit hooks 照常运行,失败会内联显示输出
  • 提交失败时用 Fix with AI:把 hook 输出、尝试的提交信息、暂存文件列表交给默认 Agent 修复(只给修复提示,不让它绕过 hooks 或代为提交/推送)

Amend

改错提交用显式的 Commit → Amend;已推送的提交不会被 amend,除非你确认。


推送(Push)

  • Push 推送到 origin 并设置 upstream(首次)
  • 分支落后时不会静默强推
  • 重写过历史(rebase / amend / squash)且远端只有旧版本时,Source Control 面板会给出独立的 Force push with lease 动作——标签明确显示将被替换的提交数与上游分支名;它用 --force-with-lease,远端若有人推进过会中止而不是覆盖

开托管评审(PR / MR)

分支推上去后:

  1. Source Control 面板的 hosted review 动作创建 PR / MR
  2. 确认 base 分支、标题、描述与 draft 状态
  3. GitHub 已有对应 PR 时可 Stack this PR above #N(堆叠 PR)
  4. Generate pull request details with AI:由分支 diff 与提交起草标题与描述(短小的问题/方案风格 + 关联 issue 指引 Fixes / Refs),生成后务必人工复核字段再创建

创建 PR 的跟随提交失败时,对话框会给出详细失败摘要(hook 输出 + 下一步按钮),可用 Fix with AI 交给 Agent 或自行解决后重试。


AI 动作配方(Action recipes)

Generate with AIGenerate pull request details with AIFix with AIResolve with AI 都是 action recipe 驱动的:指定用什么 Agent、什么 CLI 参数、什么提示词模板。

  • 编辑位置:Settings → Git & Source Control → Action recipes(全局或按仓库覆盖)
  • 模板变量:{basePrompt}{branch}{stagedFiles}{stagedPatch}{linkedIssue}{baseBranch}{commitSummary}{changedFiles}{patch}
  • 仓库自己定义了配方时,改全局不会覆盖它(设置面板会提示 Repository overrides)

落地练习:完整交付一次

  1. 用上节课的批注循环让 Agent 产出最终 diff
  2. 按 hunk 暂存,观察暂存前后 diff 状态变化
  3. 用 Generate with AI 起草提交信息,人工修正后提交
  4. Push 并开 PR(可先选 draft)
  5. 体验一次 Force push with lease 的确认界面(可先本地 rebase 制造场景,慎用)

怎么判断做对了?——你能说出「普通 Push 不覆盖他人提交、Force push 必须显式触发且用 --force-with-lease」这条安全底线。

卡住了怎么办? hook 失败就点 Fix with AI;PR 标题不满意就在生成后编辑,别让 AI 文案直接发布。


小结

  1. 提交:hunk/文件暂存 + AI 起草信息 + hooks 照常运行
  2. Push 不静默强推;Force push with lease 显式且安全
  3. 开 PR 一条龙:确认 base/标题/描述/draft,可堆叠
  4. Fix with AI 把失败交给 Agent 修复
  5. Action recipes 可自定义所有 AI 动作的配方

下一节,进入编辑模块:Monaco 编辑器。