是什么
Checkpointing 是 Claude Code 的自动文件状态追踪机制,在每次用户提交 Prompt 前保存文件快照。通过 /rewind 命令可以回溯到任意历史检查点,恢复代码、对话或两者,也可以压缩部分对话以释放上下文窗口空间。
核心机制
自动追踪:每次用户 Prompt 创建一个检查点,跨会话持久化,30 天后自动清理(可配置)。
回溯操作(双击 Esc 或 /rewind):
- 恢复代码和对话:回退到选定点,代码和对话历史都还原
- 仅恢复对话:保留当前代码,只回退对话历史
- 仅恢复代码:保留对话,只还原文件变更
- 从此处向后压缩:保留选定点之前的完整对话,将之后的内容压缩为摘要
- 压缩此处之前:保留选定点之后的完整对话,将之前的内容压缩为摘要
与 /compact 的区别:/compact 压缩整个对话,/rewind 的压缩操作可以精确选择压缩哪一段。
与 Session Fork 的区别:压缩在同一会话内操作;Fork(claude --continue --fork-session)创建新会话分支,保留原会话完整。
关键细节
- 打开回溯菜单:双击
Esc或/rewind - 检查点保留时间:30 天(可配置)
- 恢复后:选定消息的原始 Prompt 会填入输入框,可重新发送或编辑
关联
实践要点
- Bash 命令的副作用(文件删除、数据库修改)不被追踪,无法通过 Rewind 撤销
- 外部工具的变更和其他并发会话的修改也不在追踪范围内
- Checkpointing 是”本地撤销”,不替代 git 版本控制
- 探索不同实现方案时,先创建检查点(提交一个 Prompt),再开始实验
- 调试会话产生大量日志时,用”从此处向后压缩”保留初始指令、压缩调试过程