Skip to content

Checkpointing:追踪、回滚和压缩会话状态

Claude Code 会自动追踪每次文件编辑,随时可以撤销改动、回到之前的状态。

工作原理

自动记录:每次你提交提示词,Claude Code 就创建一个检查点,保存当时的代码状态。

特点:

  • 记录所有通过 Claude 文件编辑工具做的改动
  • 跨会话持久化,恢复(/resume)后仍然可以访问
  • 30 天后自动清理(可配置)

如何使用 Rewind

触发方式:

  • 按两次 EscEsc + Esc
  • 输入 /rewind 命令

会弹出一个可滚动列表,显示当前会话的所有提示词记录。选择想要操作的节点,然后选择操作:

操作效果
Restore code and conversation代码和对话都回滚到该节点
Restore conversation只回滚对话,保留当前代码
Restore code只回滚文件改动,保留对话
Summarize from here从该节点开始压缩对话,释放上下文空间
Never mind取消,返回消息列表

回滚后,选中节点的原始提示词会恢复到输入框,可以直接重新发送或修改。

Restore vs Summarize 的区别

Restore(三种还原选项):真正回退状态,撤销代码改动或对话历史,或两者都撤销。

Summarize from here

  • 选中节点之前的消息原样保留
  • 选中节点及其后续消息被替换为 AI 生成的摘要
  • 磁盘上的文件不变
  • 原始消息保留在会话记录里(Claude 需要时可以参考细节)

Summarize 和 /compact 的区别:/compact 压缩整个对话,而 Summarize 可以精确指定从哪条消息开始压缩,保留早期的完整上下文,只压缩用空间的部分。压缩时可以加指令说明保留什么重点。

想保留当前会话完整状态、同时尝试不同方向?用 Forkclaude --continue --fork-session,而不是 Summarize。


典型应用场景

探索不同实现方案:多种方案都可以从同一起点试,不满意就回滚。

从错误中恢复:引入 bug 或破坏功能时,立即回滚到正常状态。

迭代功能实现:实验不同变体,知道随时可以回到有效状态。

释放上下文空间:在一次冗长的 debug 会话中间压缩,保留最初的指令完整,压缩中间过程。


限制说明

Bash 命令产生的文件改动不追踪

Checkpointing 只追踪 Claude 通过文件编辑工具做的改动。如果 Claude 运行了这样的 Bash 命令:

bash
rm file.txt
mv old.txt new.txt
cp source.txt dest.txt

这些文件改动无法通过 rewind 撤销。

外部改动不追踪

只追踪当前会话内的文件编辑。你手动在外部做的改动,或其他并发会话的改动,通常不被捕获(除非恰好修改了相同文件)。

不替代版本控制

Checkpoints 是会话级别的快速恢复工具,不是版本历史:

  • Git:永久历史、分支管理、团队协作 → 继续正常使用
  • Checkpoints:本次会话内的"本地撤销"

两者互补,共同使用。


相关文档