Skip to content

检查点与回退

Checkpointing 是 Claude Code 的会话级撤销机制。它会自动记录 Claude 通过文件编辑工具做出的修改,让你在方向跑偏、实验失败或上下文太长时,回到更早的代码和对话状态。

检查点适合“快速撤回当前会话里的操作”。它不是 Git,不能替代分支、提交和团队协作历史。

它会记录什么

Claude Code 会在工作过程中自动捕捉代码状态:

行为结果
每次用户发起新 prompt创建一个新的检查点
Claude 使用 Edit/Write 等文件编辑工具文件变更会被纳入可回退范围
恢复已经保存的会话仍可访问该会话里的检查点
会话被自动清理检查点会随会话一起清理,默认约 30 天,可配置

从使用者角度看,你不需要手动创建 checkpoint。只要改动是 Claude Code 通过自己的编辑工具完成的,就通常能从 rewind 菜单里回退。

打开 rewind 菜单

有两种入口:

入口说明
/rewind在当前会话中打开回退菜单
空输入框里按两次 Esc快捷打开同一个菜单

如果输入框里已有文字,连续按两次 Esc 会先清空输入框,不是打开 rewind。被清掉的文字会进入输入历史,之后可按 Up 找回。

菜单会列出本会话里你发过的 prompt。选中某个时间点后,再选择要对代码、对话或上下文摘要做什么。

可选动作

动作会发生什么适合场景
Restore code and conversation代码和对话一起回到选中位置实现方向完全错了,要从那条 prompt 重新来
Restore conversation只回退对话,保留当前磁盘文件想重写后续交流,但不想丢文件改动
Restore code只回退文件改动,保留当前对话改坏了文件,但还想保留分析过程
Summarize from here把选中消息及之后压成摘要,更早内容保持完整丢掉一段支线讨论,保留开头上下文
Summarize up to here把选中消息之前压成摘要,选中消息及之后保持完整压缩早期准备过程,继续最近工作
Never mind返回消息列表不做修改

选择 Restore conversation 或 Summarize from here 后,选中消息的原始 prompt 会回到输入框,你可以直接重发或改写。选择 Summarize up to here 后,你仍停在当前会话末尾,输入框保持为空。

Restore 和 Summarize 的区别

类型是否改磁盘文件是否改对话历史主要目的
Restore code撤销文件改动
Restore conversation回到早前对话状态
Restore code and conversation同时撤销文件和对话
Summarize from/up to here用摘要替换一段上下文腾出上下文窗口

Summarize 不会回滚文件。它只把一段对话压缩成 Claude 生成的摘要,类似更精确的 /compact:你选择要压缩选中点之前还是之后。原始消息仍保存在 session transcript 中,Claude 在需要时仍可能引用到细节。

如果你想保留原会话不动,同时尝试另一条路线,用 会话分支 或命令行:

claude --continue --fork-session

/clear 之后怎么回去

如果你在同一个 Claude Code 进程里执行过 /clear,rewind 菜单顶部可能出现:

/resume <session-id> (previous session)

选择它可以恢复 /clear 之前的会话。这个入口会一直保留到你退出 Claude Code,或恢复了另一个 session。官方说明中,该菜单入口需要 Claude Code v2.1.191 或更新版本;更早版本可用 /resume 从列表里手动找回旧会话。

典型用法

尝试大改动

让 Claude 先计划,再执行较大范围修改。每轮 prompt 都会形成可回退点,所以你可以放心比较不同实现方向。

方向不对就 rewind

不要用一串“撤销刚才所有内容”继续堆上下文。打开 /rewind,选中出问题前的 prompt,按需要恢复代码、对话或两者。

长支线用 summarize

如果只是中途查了很多资料、讨论了错误方向,但不想动文件,用 Summarize from here 或 Summarize up to here 压缩上下文。

稳定后提交到 Git

检查点会随会话生命周期清理。真正要长期保留的状态,还是用 Git commit、branch 或 PR。

限制

限制影响
Bash 改文件不被 checkpoint 追踪rmmvcp、脚本生成文件等不能靠 rewind 撤销
外部改动通常不被追踪你手动编辑、其他终端或其他 Claude 会话的改动,一般不在当前检查点里
只覆盖当前会话相关文件未被当前会话编辑过的文件,通常没有可恢复状态
不是长期版本历史会随 session 清理,也不解决多人协作冲突

如果任务会运行生成器、格式化器、迁移脚本或删除命令,先确认 Git 工作区状态。Checkpointing 对 Claude 的直接文件编辑很有用,但对 shell 造成的文件系统变化没有完整保护。

和 Gushen888 的关系

Checkpointing 是 Claude Code 本地会话能力,和模型网关本身没有强绑定。接入 Gushen888 后,/rewind、摘要和恢复流程仍由 Claude Code 管理;真正的模型调用仍走你的 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN 配置。

官方参考

面向编码工具与 Agent 工作流的稳定模型网关。