AI 编程教程中文版
官方教程中文版Copilot CLI

回滚和 PR 管理

说明 Copilot CLI snapshot、双 Esc、/undo、/rewind、验证回滚和 PR 审查链路。

Copilot CLI 能改文件和运行命令,就必须能回滚。GitHub 官方 rollback 页面说明:交互式会话中,每次 prompt 开始时,Copilot CLI 会创建 workspace snapshot(工作区快照);如果结果不符合预期,可以回到某个 prompt 前的状态。

回滚不是补救小技巧,而是 CLI 工作流的安全底线。前提:仓库必须至少有一个 Git commit,且回滚是整个工作区回到 snapshot——不只 Copilot 的改动,你自己的手动编辑也会一起被覆盖。

阅读目标:读完本章,你应该能用 snapshot、双 Esc/undo 和 Git review 管理 Copilot CLI 改动。

1. Snapshot 怎么工作

官方文档说明:

  • 每次输入 prompt 后,CLI 开始工作前会创建 workspace snapshot。
  • 回滚会把仓库恢复到所选 prompt 开始前的状态。
  • 可以双击 Esc 打开 rewind picker。
  • 也可以用 /undo/rewind slash command。
  • 需要在有至少一个 commit 的 Git repository 中工作。
flowchart TD
    Prompt["输入 prompt"] --> Snapshot["创建 snapshot"]
    Snapshot --> Work["Copilot 改文件 / 跑命令"]
    Work --> Review{"结果是否可接受?"}
    Review -->|是| Keep["保留并测试"]
    Review -->|否| Rewind["Esc Esc / /undo"]
    Rewind --> Picker["选择 snapshot"]
    Picker --> Restore["恢复到 prompt 前状态"]
    Keep --> PR["commit / PR review"]

    style Snapshot fill:#dbeafe,stroke:#2563eb,stroke-width:2px
    style Rewind fill:#fee2e2,stroke:#dc2626,stroke-width:2px
    style PR fill:#dcfce7,stroke:#16a34a,stroke-width:2px

2. 回滚前必须知道的警告

官方 rollback 页面给出两个关键警告:

  • Rewind 会恢复整个 workspace 到选中 snapshot 的状态,撤回该 snapshot 后所有改动,不只撤回 Copilot 改动,也包括你的手动编辑和 shell command 产生的改动。
  • Rewind 不能撤销。回到某个 snapshot 后,该点之后的 snapshots 和 session history 会永久移除。

所以回滚前先看:

git status
git diff

确认没有你要保留的手动改动。

3. 双 Esc 回滚

当 Copilot 已经完成一个 prompt 的响应,且 input area 为空时:

  1. 快速按两次 Esc
  2. 打开 rewind picker。
  3. 选择要回到的 snapshot。
  4. 仓库恢复到该 prompt 开始前。
  5. 选中的 prompt 会重新出现在 input area,你可以改写后重试。

如果 input area 里有文字,双 Esc 可能先清空输入,不一定打开 picker。

4. /undo/rewind

/undo/rewind 是打开 rewind picker 的 slash command。它们和双 Esc 结果相同,适合你不想依赖快捷键时使用。

推荐流程:

  1. /undo
  2. 选 snapshot。
  3. git status
  4. git diff
  5. 重新缩小 prompt。

5. 回滚验证

回滚后不能只看 CLI 提示。至少检查:

  • git status 是否回到预期。
  • 被删除或新增的文件是否符合预期。
  • 测试是否需要重跑。
  • 后续 prompt 是否缩小了范围。
  • 如果已有 PR,是否需要关闭、更新或说明回滚。

6. PR 管理

Copilot CLI 可以帮助管理 PR,但 PR 仍然要按普通工程流程处理:

  • CLI 可以创建或修改 PR。
  • /delegate 会打开 draft PR。
  • PR summary 不是 review。
  • Reviewer 仍要看 diff、tests、workflow 和权限变化。
  • 不合格分支可以关闭 PR 或人工接管。
深读:为什么 Git commit 是 rollback 前提

官方文档要求仓库至少有一个 commit,因为 CLI 用 Git operations 跟踪和恢复 workspace state。没有 Git 基线,回滚就缺少明确恢复点。

所以在新项目里使用 CLI 写入前,先创建初始 commit,比事后手动收拾安全得多。

本章自检

完成本章后,用这 4 个问题检查:

  1. 当前仓库是否至少有一个 commit?
  2. 回滚前是否确认没有需要保留的手动改动?
  3. 回滚后是否用 git statusgit diff 验证?
  4. PR 是否保留了 reviewer 能理解的变更、测试和回滚记录?

通过标准:CLI 任务失败时,你能回到已知状态,而不是在脏工作区里继续叠加 prompt。

官方来源

接下来去哪

本页目录