Appearance
Checkpointing:追踪、回滚和压缩会话状态
Claude Code 会自动追踪每次文件编辑,随时可以撤销改动、回到之前的状态。
工作原理
自动记录:每次你提交提示词,Claude Code 就创建一个检查点,保存当时的代码状态。
特点:
- 记录所有通过 Claude 文件编辑工具做的改动
- 跨会话持久化,恢复(
/resume)后仍然可以访问 - 30 天后自动清理(可配置)
如何使用 Rewind
触发方式:
- 按两次
Esc(Esc+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 可以精确指定从哪条消息开始压缩,保留早期的完整上下文,只压缩用空间的部分。压缩时可以加指令说明保留什么重点。
想保留当前会话完整状态、同时尝试不同方向?用 Fork:
claude --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:本次会话内的"本地撤销"
两者互补,共同使用。