AI 编程与智能体

[Claude Code #5] /rewind:将搞坏的代码恢复到检查点

Claude Code 的 /rewind 会利用每次提示自动保存的检查点,将代码和对话恢复到之前的状态。本文整理了按两次 Esc 打开的菜单、恢复与总结选项,以及 Shell 副作用等无法回滚的内容。

4 分钟阅读
[Claude Code #5] /rewind:将搞坏的代码恢复到检查点 封面图

把修改交给 AI,30 分钟后开始后悔,相信大家都有过这种经历。如果连提交都没做,背后就会冒冷汗。

Claude Code 提供了应对这种情况的回退按钮,就是/rewind

每次发送提示时,代码状态都会保存为检查点,随时可以将代码和对话恢复到那个时间点。

如果Claude Code 第 4 期/branch是分支,那么这一期讲的就是回退。

检查点会自动累积

官方检查点文档为准,工作方式如下。

每次发送用户提示时,都会创建一个检查点。不需要单独开启功能,也不用按保存按钮。

每个会话最多保留最近 100 个文件快照检查点。由于检查点会和对话一起保存,因此恢复会话后仍然可以/rewind

打开回退菜单

输入/rewind,或者在输入框为空时按两次 Esc,即可打开菜单。

菜单会按时间顺序显示本次会话发送过的提示。选择要返回的时间点后,就会出现相应选项。

  • 恢复代码和对话:全部恢复到该时间点
  • 仅恢复对话:保留当前代码状态,只回退对话
  • 仅恢复代码:保留对话,只撤销文件更改

只有在该时间点之后存在已跟踪的文件更改时,才会显示两个代码恢复选项。

恢复对话后,该时间点的原始提示会重新填入输入框。修改指令后再次发送即可。

Claude Code 创建检查点及 /rewind 恢复选项示意图
每次提示都会累积检查点,并可选择恢复范围进行回退

除了回退,也可以使用总结

同一菜单中还提供两个总结选项。

从这里开始总结会将选定时间点之后的对话压缩成总结。适合收起冗长的调试过程,释放上下文空间。

总结到这里则相反,会压缩前面的内容,同时完整保留最近的对话。

总结不会修改文件,原始消息也会保留在会话记录中。可以把它理解为精确标记某个位置的/compact

哪些内容无法回退

/rewind并非万能,它有明确的跟踪范围。

首先,它不会跟踪 Shell 命令的副作用。Claude 通过rmmv修改的文件,无法通过回退恢复。只有使用文件编辑工具修改的内容才会被跟踪。

子代理修改的文件通常也不在恢复范围内。例外是以前台运行的 fork skill;默认后台子代理所做的编辑必须使用 git 回退。

在会话外手动修改的内容,以及通过符号链接或硬链接连接的文件也一样。恢复时会跳过这些路径,并显示跳过数量的警告。

检查点也可能在 30 天后随会话一起删除。这正是官方文档特别强调这一点的原因:它用于会话级快速恢复,而不是 git 等版本控制系统的替代品。

一张安全网接住笔记本电脑的插图,画面包含 SAFETY NET NOT A VAULT 字样和 git 金库
检查点是网,git 是金库

返回使用 /clear 清除的对话

使用/clear清除对话后,也可能立刻觉得“糟了”。

在同一个 Claude Code 进程中,回退菜单最上方会显示返回上一个会话的选项(v2.1.191 及更高版本)。选择后,/clear之前的对话会原样恢复。

总结

/rewind是通过提示级检查点恢复代码和对话的安全网。按两次 Esc 即可打开。

只要记住 Shell 命令的副作用无法回退即可。会话内实验交给/rewind,永久历史交给 git。

下一期将介绍为 Claude 设置完成条件的/goal。设置目标后,每轮结束时都会由另一个模型判断是否满足条件;如果尚未满足,工作就会继续。

来源与确认标准

延伸阅读

Claude Code 系列

相关主题