Checkpoint 与 Rewind:安全撤回 Claude Code 的修改
Claude Code 会在编辑前建立 checkpoint,/rewind 可以恢复代码、恢复对话或从旧节点继续。本篇讲清它与 Git 回滚的边界、恢复前检查和误修改演练。
教程基准:Claude Code v2.1.224(当前最新版,核验于 2026-08-07) · 最后核验:2026-08-07 · 适用版本:建议使用最新版 · 官方文档
继续学习 Git 安全Checkpoint 是什么
Claude Code 使用文件编辑工具前会自动记录检查点。每个用户提示通常形成一个新节点,你可以通过 /rewind、/checkpoint、/undo 或连续按两次 Esc 打开恢复界面。
它适合处理“刚才这一轮改坏了”“讨论方向走偏了”“我想从之前的方案重新开始”。但它不是 Git、备份或数据库事务。
三种恢复不要选错
恢复界面通常会让你选择恢复范围:
- 只恢复代码:撤回 Claude 文件编辑,保留对话,适合方案还对但实现改坏了。
- 只恢复对话:把上下文退回旧节点,但保留当前文件,适合重新讨论而不丢代码。
- 同时恢复代码和对话:整体回到旧节点,适合这一段探索全部放弃。
确认前先看目标节点和影响文件。不要因为想删掉一句聊天内容,就误选同时恢复代码。
Checkpoint 不会保护什么
自动 checkpoint 主要跟踪 Claude 文件工具造成的编辑。下面这些不能假设一定能恢复:
- 你自己在编辑器里做的修改。
- shell 命令直接改写或删除的文件。
git reset、git clean、rebase、push 等 Git 操作。- 数据库迁移、远程 API、云资源和生产数据。
- 安装依赖后发生的外部状态变化。
因此高风险任务仍然需要 Git 分支、提交、数据库备份、临时环境和权限审批。
恢复前的安全检查
当工作区本来就有你的未提交修改时,先暂停并检查:
请只读检查当前状态,不要恢复、修改或执行 Git 写操作。 请列出: 1. 当前有哪些未提交文件。 2. 哪些修改是本任务开始前就存在的。 3. 最近一个 checkpoint 涉及哪些文件。 4. 只恢复代码会影响什么。 5. 是否有无法由 checkpoint 恢复的 shell 或外部操作。
如果无法区分用户修改和 Claude 修改,不要立即 rewind。先复制关键 diff、创建安全分支或人工备份目标文件,再决定恢复范围。
一个低风险演练
第一次不要在真实业务改坏后才学习恢复。准备一个练习仓库:
- 提交干净基线。
- 让 Claude 修改一段练习文案。
- 再发一个提示,让它做第二处独立修改。
- 打开
/rewind,观察两个提示对应的节点。 - 选择只恢复第二轮代码。
- 用
git diff确认第一轮仍保留、第二轮已撤回。 - 再测试只恢复对话,理解它不会自动撤回当前文件。
练习目标不是记按钮,而是能够预测每个选项会留下什么。
Rewind 和 Git 怎么分工
| 场景 | 优先工具 |
|---|---|
| 撤回刚才一轮 Claude 编辑 | checkpoint / rewind |
| 比较整个任务的所有变化 | Git diff |
| 保存一个可长期返回的稳定节点 | Git commit |
| 多任务隔离 | Git branch / worktree |
| 恢复已经提交的历史 | Git revert 等经过审查的 Git 操作 |
| 撤销生产数据库或远程资源 | 对应系统的备份、回滚和审计流程 |
Checkpoint 快,Git 边界清楚。专业工作流通常两者一起用:小步探索靠 checkpoint,阶段性稳定结果靠 Git 提交。
恢复后怎么验收
Rewind 完成不代表状态一定正确。恢复后执行:
git status:确认文件集合符合预期。git diff:确认只撤回目标修改。- 检查用户原有未提交修改是否还在。
- 运行受影响模块的最小测试。
- 检查是否留下新文件、缓存或后台进程。
- 用一句话记录为什么恢复以及下一步方案。
如果撤回后要换方案,先重新进入 Plan Mode,不要立刻让 Claude 用另一种方式大改同一批文件。
Checkpoint 保留期限
检查点跟随会话保存,并会随会话清理策略过期。它适合近期恢复,不适合作为长期版本档案。需要几天后、几周后仍能回到的状态,必须使用 Git 或正式备份。
团队交接时也不要只说“可以 rewind”。应提交清晰分支或补丁,并说明未验证风险,让接手人不依赖你的本机会话历史。
常见误区
- 看到 checkpoint 就认为任何操作都能撤销。
- 没检查工作区就恢复,连用户原有修改一起覆盖。
- 只恢复对话后,以为文件也已经退回。
- 恢复成功后不看 diff,直接继续下一轮修改。
- 把短期会话检查点当成长期版本管理。
最稳的判断方法是:先说明“希望保留什么、希望撤回什么”,再选择恢复类型。任何涉及外部状态的操作,都回到对应系统检查真实结果,不要只看 Claude Code 的对话记录。
验收结果
- 你知道只恢复代码、只恢复对话和同时恢复的区别。
- 你知道 shell、Git、数据库和远程操作不能依赖 checkpoint。
- 你会在有未提交修改时先检查影响范围。
- 你会用低风险仓库演练恢复。
- 你知道恢复后仍要检查 status、diff 和测试。