是什么

Checkpointing 是 Claude Code 的自动文件状态追踪机制,在每次用户提交 Prompt 前保存文件快照。通过 /rewind 命令可以回溯到任意历史检查点,恢复代码、对话或两者,也可以压缩部分对话以释放上下文窗口空间。

核心机制

自动追踪:每次用户 Prompt 创建一个检查点,跨会话持久化,30 天后自动清理(可配置)。

回溯操作(双击 Esc 或 /rewind):

  • 恢复代码和对话:回退到选定点,代码和对话历史都还原
  • 仅恢复对话:保留当前代码,只回退对话历史
  • 仅恢复代码:保留对话,只还原文件变更
  • 从此处向后压缩:保留选定点之前的完整对话,将之后的内容压缩为摘要
  • 压缩此处之前:保留选定点之后的完整对话,将之前的内容压缩为摘要

与 /compact 的区别:/compact 压缩整个对话,/rewind 的压缩操作可以精确选择压缩哪一段。

与 Session Fork 的区别:压缩在同一会话内操作;Fork(claude --continue --fork-session)创建新会话分支,保留原会话完整。

关键细节

  • 打开回溯菜单:双击 Esc 或 /rewind
  • 检查点保留时间:30 天(可配置)
  • 恢复后:选定消息的原始 Prompt 会填入输入框,可重新发送或编辑

关联

  • headless — 非交互式模式下的会话管理
  • goal — 长时间运行任务中的状态管理

实践要点

  • Bash 命令的副作用(文件删除、数据库修改)不被追踪,无法通过 Rewind 撤销
  • 外部工具的变更和其他并发会话的修改也不在追踪范围内
  • Checkpointing 是”本地撤销”,不替代 git 版本控制
  • 探索不同实现方案时,先创建检查点(提交一个 Prompt),再开始实验
  • 调试会话产生大量日志时,用”从此处向后压缩”保留初始指令、压缩调试过程