把修改交给 AI,30 分钟后开始后悔,相信大家都有过这种经历。如果连提交都没做,背后就会冒冷汗。
Claude Code 提供了应对这种情况的回退按钮,就是/rewind。
每次发送提示时,代码状态都会保存为检查点,随时可以将代码和对话恢复到那个时间点。
如果Claude Code 第 4 期的/branch是分支,那么这一期讲的就是回退。
检查点会自动累积
以官方检查点文档为准,工作方式如下。
每次发送用户提示时,都会创建一个检查点。不需要单独开启功能,也不用按保存按钮。
每个会话最多保留最近 100 个文件快照检查点。由于检查点会和对话一起保存,因此恢复会话后仍然可以/rewind。
打开回退菜单
输入/rewind,或者在输入框为空时按两次 Esc,即可打开菜单。
菜单会按时间顺序显示本次会话发送过的提示。选择要返回的时间点后,就会出现相应选项。
- 恢复代码和对话:全部恢复到该时间点
- 仅恢复对话:保留当前代码状态,只回退对话
- 仅恢复代码:保留对话,只撤销文件更改
只有在该时间点之后存在已跟踪的文件更改时,才会显示两个代码恢复选项。
恢复对话后,该时间点的原始提示会重新填入输入框。修改指令后再次发送即可。
除了回退,也可以使用总结
同一菜单中还提供两个总结选项。
从这里开始总结会将选定时间点之后的对话压缩成总结。适合收起冗长的调试过程,释放上下文空间。
总结到这里则相反,会压缩前面的内容,同时完整保留最近的对话。
总结不会修改文件,原始消息也会保留在会话记录中。可以把它理解为精确标记某个位置的/compact。
哪些内容无法回退
/rewind并非万能,它有明确的跟踪范围。
首先,它不会跟踪 Shell 命令的副作用。Claude 通过rm或mv修改的文件,无法通过回退恢复。只有使用文件编辑工具修改的内容才会被跟踪。
子代理修改的文件通常也不在恢复范围内。例外是以前台运行的 fork skill;默认后台子代理所做的编辑必须使用 git 回退。
在会话外手动修改的内容,以及通过符号链接或硬链接连接的文件也一样。恢复时会跳过这些路径,并显示跳过数量的警告。
检查点也可能在 30 天后随会话一起删除。这正是官方文档特别强调这一点的原因:它用于会话级快速恢复,而不是 git 等版本控制系统的替代品。
返回使用 /clear 清除的对话
使用/clear清除对话后,也可能立刻觉得“糟了”。
在同一个 Claude Code 进程中,回退菜单最上方会显示返回上一个会话的选项(v2.1.191 及更高版本)。选择后,/clear之前的对话会原样恢复。
总结
/rewind是通过提示级检查点恢复代码和对话的安全网。按两次 Esc 即可打开。
只要记住 Shell 命令的副作用无法回退即可。会话内实验交给/rewind,永久历史交给 git。
下一期将介绍为 Claude 设置完成条件的/goal。设置目标后,每轮结束时都会由另一个模型判断是否满足条件;如果尚未满足,工作就会继续。
来源与确认标准
- Claude Code 官方文档 — Checkpointing(Anthropic,确认于 2026-08-14)

![[Claude Code #5] /rewind:将搞坏的代码恢复到检查点 封面图](/assets/images/posts/4ec0d8c7-c3a4-4b3f-88bc-6a11a605c143/claude-code-rewind-checkpoint.jpg)