Appearance
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 命令有外部副作用(比如推送代码、发送请求、修改数据库),这些效果无法通过回滚撤销。