想撤销改动,先区分恢复代码与恢复对话

Claude Code的/rewind菜单可以恢复受追踪的文件编辑、对话,或两者一起恢复。只恢复对话不会让磁盘代码自动回到旧版;恢复代码也不等于数据库、远程操作和所有终端改动都被撤销。

操作前保留当前差异与需要留存的新文件,记录准备回到哪一个用户提示。若唯一成果还未备份,不要靠反复试不同恢复项来猜效果。

用两份虚构文件认识边界

设想一个练习目录:Claude的文件编辑工具把intro.md里的“草稿”改成“确认版”;随后终端命令生成report.txt。你希望撤销前一项,而保留报告。正确的检查不只是对话回到哪一句,而是两份文件在操作前后的实际内容。

官方说明,检查点追踪Claude文件编辑工具的改动,Bash命令造成的文件变化不在同一追踪范围内。因此不能承诺/rewind把终端生成的报告也恢复到旧状态。人工、其他并发会话以及子代理的编辑通常也不能当作被当前检查点完整保护;子代理的具体例外按实际运行方式核对。

这个例子是为理解机制设计的,本文没有运行真实Claude Code恢复;不提供可直接删除文件的演示命令。

恢复对象选对,再核对磁盘;Restore code:受追踪文件恢复,对话保留;Restore conversation:对话回到节点,代码保留;同时恢复两者:仍受文件追踪范围限制;恢复后验收:差异、未追踪文件和测试分别看
本站原创示意图:恢复对象选对,再核对磁盘。Bash与外部系统改动不能保证被rewind撤销。查看大图 ↗

打开菜单后,按目标选择

在会话中运行/rewind。官方也提供在输入为空时连按两次Esc打开菜单;输入里有文字时,这个快捷键可能先清空输入,不要把它当作无条件恢复操作。

选择目标提示后,Restore code用于恢复受追踪文件而保留当前对话;Restore conversation用于回到对话节点而保留当前代码;Restore code and conversation用于同时恢复两者。菜单实际可选项取决于该检查点是否有可恢复编辑,没看到代码恢复项时不应假定它已经暗中完成。

如果只是想降低上下文占用,摘要类选项和恢复代码是不同任务。不要为了删掉一段聊天内容,无意选择了同时回滚文件的项。

恢复后做一次文件级验收

先看git status --short确认变化范围,再看git diff核对具体行;对于未追踪文件,另外检查文件是否存在、内容是否仍需要。Git差异不会自动包含所有未追踪文件的正文。

回到虚构例子:应分别记录intro.md是否回到“草稿”、report.txt是否保留,以及其他文件有没有变化。若仍有部分文件未恢复,停止继续修改,保留恢复提示和当前状态,确认它是否本来就不在追踪范围。

符号链接、硬链接等路径也有恢复限制;遇到跳过文件的提示时按实际清单处理,不把“已恢复”概括成每个路径都成功。外部系统里已发出的消息或写入的数据,要通过各自真实的恢复流程处理。

检查点不是长期版本库

检查点与会话和保留策略相关,旧快照可能因清理失效。需要长期保存、多人协作或发布回滚的成果,仍使用Git提交和适当的数据备份,不能只依赖聊天历史。

如果恢复会损失正在进行的工作,可先在安全位置保留当前差异,再核对目标。不要未经检查执行整库硬重置来替代局部排查。

本文的交付是恢复前后检查表与机制说明,没有证明某次实际恢复必然成功。最终以菜单、文件内容、差异和测试结果共同验收;恢复了文件也仍需确认程序能正常运行。

参考资料与核验范围

资料核对日期:2026年10月18日。以下为官方原始资料;产品入口和可用范围仍以当前账户为准。

1. [官方资料1](https://code.claude.com/docs/en/checkpointing)