Skip to content

Copilot CLI 在每个提示词开始前自动为工作区打快照。如果 AI 改动出了问题,双击 Esc 或执行 /undo 可以快速回滚到任意快照点——新增的文件会被删除,已有文件恢复原状。注意:回滚不可撤销。

GitHub Copilot CLI 撤销与回滚:快速恢复到之前的状态

工作原理

每次你给 Copilot 下指令,Copilot 执行前会给当前工作区打一个快照。如果执行结果不理想,你可以通过回滚把代码库还原到指定快照时的状态——包括:

  • 恢复被修改的文件内容
  • 删除快照后新增的文件
  • 撤销所有 Shell 命令产生的可逆效果

如何回滚

方法一:双按 Esc

确保输入框为空,然后快速按两次 Esc 键,会出现一个回滚选择器,列出最近的快照。

方法二:斜杠命令

/undo

/rewind

两者效果相同,都会弹出回滚选择器。

回滚选择器

选择器会展示最近 10 个快照(更早的快照不显示),每个快照对应你当时输入的提示词。选中某个快照后,代码库会恢复到那个提示词执行之前的状态。

验证回滚结果

Copilot CLI 支持在提示框中直接运行 Shell 命令,前缀加 !

! git status         # 查看文件变更
! git log --oneline -1   # 查看最新提交
! git diff           # 查看未暂存的改动

使用前提

  • 项目必须是Git 仓库,且至少有一个提交
  • 只能回滚到当前会话中的快照(不能跨会话回滚)
  • 无法回滚到本次会话第一个快照之前的状态

重要限制

回滚无法撤销:一旦回滚到某个快照,该快照之后的所有快照和会话历史都会永久删除

建议在执行有风险的指令前,先提交一个 Git checkpoint,这样即使 Copilot CLI 的回滚无法满足需求,还有 Git 记录作为保底。

常见问题

Q: /undo 和双 Esc 有什么区别?

A: 功能完全相同,都打开同一个回滚选择器。双 Esc 是键盘快捷方式,/undo 或 /rewind 是斜杠命令,选你习惯的用法就行。

Q: 快照只保留 10 个够用吗?

A: 对于大多数工作场景够用。如果担心丢失关键节点,养成习惯在重要步骤前先 git commit,用 Git 历史做更可靠的备份。

Q: Shell 命令的效果也能回滚吗?

A: 只能回滚文件系统的变更。如果 Shell 命令有外部副作用(比如推送代码、发送请求、修改数据库),这些效果无法通过回滚撤销。