检查点 Checkpointing
检查点 Checkpointing
Section titled “检查点 Checkpointing”让 AI 改代码,最大的恐惧是什么?是它改错了,你不知道改了什么、回不去。
Checkpointing 就是治这个的。它是你的「时光机」——自动追踪每次文件编辑,让你随时能回到过去某个时刻。也是你的「安全绳」——攀岩时失手,绳子上挂着,掉不下去。
自动追踪:不用你操心
Section titled “自动追踪:不用你操心”最让人安心的一点:Checkpointing 是全自动的。你不用手动「保存检查点」,Claude Code 在编辑文件时会自动记录每次改动。
打个比方:就像文档编辑器里的「版本历史」,你每改一下它都悄悄存一份快照。区别是,这里的快照不只记文件内容,还记对话到哪了——所以你能连对话带代码一起回退。
/rewind:回到过去
Section titled “/rewind:回到过去”核心命令是 /rewind。打 /rewind 后,Claude Code 会让你选回退什么:
| 选项 | 回退什么 |
|---|---|
| 对话 | 把对话回退到某个点,代码不动 |
| 代码 | 把文件回退到某个检查点,对话不动 |
| 两者都 | 对话和代码一起回到那个时刻 |
这给了你三种粒度:
- 只回代码:适合「Claude 改的代码我想丢掉,但前面的讨论还有用」。代码回退,对话保留,你可以在讨论基础上换条路走。
- 只回对话:适合「前面聊歪了想重来,但代码改动我满意」。对话清掉,代码留着。
- 都回:彻底回到那个时刻,干干净净重新来。
Esc Esc:快捷回退
Section titled “Esc Esc:快捷回退”不想打 /rewind 那么长?有个快捷键:连按两次 Esc。
Esc Esc这是最常用的回退姿势——Claude 刚改完一段代码,你扫一眼觉得不对劲,啪啪两下 Esc,就回到了改之前。比任何版本控制操作都快。
这个快捷键的妙处在于「即时」:你不用想「该不该 git stash」,不用切到终端打命令,眼疾手快两下就回来了。等你确认改对了再继续。
为什么叫「安全绳」?想想攀岩:
- 没有 Checkpointing,让 AI 改代码像徒手攀岩——一步走错,摔下去代码就乱了,你不知道怎么恢复。
- 有了 Checkpointing,像系了安全绳——你可以放心往上爬,失手时绳子拽住你,回到上一个保护点。
这改变了你和 AI 协作的心态。没有安全绳时,你每次让 Claude 改代码都提心吊胆、小心翼翼;有了安全绳,你敢于让它大胆尝试——反正能回退。Checkpointing 让「敢试」成为可能。
多方案探索:最香的用法
Section titled “多方案探索:最香的用法”这是 Checkpointing 最被低估的用法:多方案探索。
假设你要实现一个功能,拿不准用方案 A(直接改)还是方案 B(先抽象再改)。传统做法是选一个赌一把,赌错了得手动回退。
有了 Checkpointing,你可以:
- 让 Claude 走方案 A,改完看效果
/rewind回到改之前- 让 Claude 走方案 B,改完看效果
- 对比两版,选更好的留下
就像游戏里的「存档点」——你在关键岔路口存个档,每条路都试走一段,不满意的读档重来。这种「低成本试错」是 Checkpointing 带来的最大价值,远不止「改错了能撤销」。
和 Git 的关系
Section titled “和 Git 的关系”有人会问:这不就是 Git 吗?我 git stash 不也行?
相似,但有关键区别:
| 维度 | Git | Checkpointing |
|---|---|---|
| 触发 | 手动 commit/stash | 自动追踪 |
| 粒度 | 你决定提交点 | 每次编辑都记 |
| 对话 | 不记对话 | 对话一起记 |
| 回退 | 只回代码 | 代码/对话/两者都可选 |
| 速度 | 要打几条命令 | Esc Esc 两下 |
Checkpointing 不是替代 Git,而是补充 Git 的缝隙——你在两次 commit 之间的探索过程,它帮你记着。最终你还是要用 Git commit 来固化成果,但中间的试错过程,Checkpointing 兜着。
一个实战:重构时反复试
Section titled “一个实战:重构时反复试”重构一个复杂函数时,最经典的工作流:
(你让 Claude 用方案 A 重构)> 重构这个函数,把回调改成 async/await
(Claude 改完,你扫一眼觉得嵌套太深)
Esc Esc ← 回到改之前
> 重构这个函数,把回调拆成多个小函数
(Claude 改完,这次更清爽)两次尝试,零成本对比。如果没有 Checkpointing,第一次改完你得手动 git checkout 恢复,还要清掉对话里的痕迹,麻烦得多。
注意:不是无限回退
Section titled “注意:不是无限回退”Checkpointing 不是无限远的时光机。它记的是当前会话内的编辑历史。会话结束后,检查点就清了——长期版本管理还是 Git 的活。
所以一个习惯:重大改动用 Git commit 固化,探索过程用 Checkpointing 兜底。两者配合,既敢试又不丢。
Checkpointing 是时光机和安全绳——自动追踪每次编辑,/rewind 回退对话和/或代码,Esc Esc 两下回到过去。最香的用法是多方案探索:A 路试完回退试 B 路,低成本对比选最优。
下一站,去 设置 Settings 搞清楚配置的层级和优先级。🚀