Skip to content

Gemini CLI 的 /rewind 命令(或按 Esc 两次)让你回到对话的某个历史节点,并可选择是否同时撤销那之后 AI 对文件的所有修改。支持三种操作:仅回退对话、仅撤销文件修改、两者都回退。不影响你手动编辑的文件。

/rewind 命令:回退对话与撤销文件修改

/rewind 命令让你回到会话的某个历史时刻,纠正 AI 的错误操作、探索不同的解法,或清理会话历史。

触发方式:

  • 输入 /rewind 后按回车
  • 键盘快捷键:连按两次 Esc

操作界面

触发 rewind 后,出现交互式历史列表:

  1. 选择时间点:用上下方向键浏览历史记录,最新的记录在底部
  2. 预览:选中某条记录时,显示该轮次的用户 Prompt 以及(如有)文件修改数量
  3. 确认选择:按 Enter 确认要回退到的时间点
  4. 选择操作:出现操作确认对话框,最多有三个选项:
    • 回退对话并撤销代码修改:同时恢复对话历史和文件到选定时间点之前的状态
    • 仅回退对话:只还原对话历史,文件修改保留
    • 仅撤销代码修改:只还原文件,对话历史保留
    • 取消(Esc):什么都不做,退出 rewind

如果选定时间点之后没有发生过文件修改,与文件相关的选项不会显示。

注意事项

  • 不可逆操作:回退对话历史后,被删除的轮次无法恢复
  • AI 失忆:回退对话后,AI 不再记得被移除的交互内容。如果你只撤销了文件修改但保留对话,需要告知 AI 文件已经回退
  • 不影响手动编辑/rewind 只撤销 AI 编辑工具产生的文件变更,你手动编辑的内容不受影响
  • 不撤销 Shell 命令的结果:Shell 工具(! 命令)执行的命令产生的结果(如安装了某个包)不会被撤销,只有文件写入可以被还原
  • 支持跨压缩点:即使会话经过了上下文压缩,rewind 也能通过存储的会话数据重建历史

使用场景

场景一:AI 改错了文件

发现 AI 的最近几轮操作把代码改乱了,用 /rewind 选择问题出现前的节点,勾选"回退对话并撤销代码修改",从那个时间点重新给出更明确的指令。

场景二:探索不同方向

AI 给出了一个实现方案,你想试试另一种思路。用 /rewind 回到发出请求之前,重新给出不同的提示词。

场景三:只撤销文件保留对话

AI 生成了一些测试代码文件但你不想要,但想保留对话上下文继续工作。选择"仅撤销代码修改"。

常见问题

Q: /rewind 可以撤销几步?

A: 可以回退到当前会话任意一个历史节点,不限步数,只要还在会话历史中。

Q: 会话被压缩(compact)之后还能 rewind 吗?

A: 可以。/rewind 通过会话存储数据重建历史,即使上下文压缩后也能正常工作。

Q: 和 Checkpointing(检查点)有什么区别?

A: /rewind 是会话内的即时回退,操作完即生效;Checkpointing 是定期保存会话快照,可跨会话恢复。两者互补,rewind 更轻量快速,Checkpointing 更适合长期保存关键状态。