不离开 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)
分支推上去后:
- Source Control 面板的 hosted review 动作创建 PR / MR
- 确认 base 分支、标题、描述与 draft 状态
- GitHub 已有对应 PR 时可 Stack this PR above #N(堆叠 PR)
- Generate pull request details with AI:由分支 diff 与提交起草标题与描述(短小的问题/方案风格 + 关联 issue 指引
Fixes/Refs),生成后务必人工复核字段再创建
创建 PR 的跟随提交失败时,对话框会给出详细失败摘要(hook 输出 + 下一步按钮),可用 Fix with AI 交给 Agent 或自行解决后重试。
AI 动作配方(Action recipes)
Generate with AI、Generate pull request details with AI、Fix with AI、Resolve with AI 都是 action recipe 驱动的:指定用什么 Agent、什么 CLI 参数、什么提示词模板。
- 编辑位置:Settings → Git & Source Control → Action recipes(全局或按仓库覆盖)
- 模板变量:
{basePrompt}、{branch}、{stagedFiles}、{stagedPatch}、{linkedIssue}、{baseBranch}、{commitSummary}、{changedFiles}、{patch}等 - 仓库自己定义了配方时,改全局不会覆盖它(设置面板会提示 Repository overrides)
落地练习:完整交付一次
- 用上节课的批注循环让 Agent 产出最终 diff
- 按 hunk 暂存,观察暂存前后 diff 状态变化
- 用 Generate with AI 起草提交信息,人工修正后提交
- Push 并开 PR(可先选 draft)
- 体验一次 Force push with lease 的确认界面(可先本地 rebase 制造场景,慎用)
怎么判断做对了?——你能说出「普通 Push 不覆盖他人提交、Force push 必须显式触发且用 --force-with-lease」这条安全底线。
卡住了怎么办? hook 失败就点 Fix with AI;PR 标题不满意就在生成后编辑,别让 AI 文案直接发布。
小结
- 提交:hunk/文件暂存 + AI 起草信息 + hooks 照常运行
- Push 不静默强推;Force push with lease 显式且安全
- 开 PR 一条龙:确认 base/标题/描述/draft,可堆叠
- Fix with AI 把失败交给 Agent 修复
- Action recipes 可自定义所有 AI 动作的配方
下一节,进入编辑模块:Monaco 编辑器。