教程

Claude Code Checkpointing 完全指南:5 种回退选项、「摘要」vs「恢复」与三大局限

Claude Code Checkpointing 完整指南:工作原理(每次用户提示自动保存/跨会话持久/30 天清理)、打开回退菜单(Esc×2 或 /rewind)、5 种操作(Restore code+conversation/仅 code/仅 conversation/Summarize from here/Never mind)、「恢复」vs「摘要」深度对比(摘要不修改文件/保留早期上下文/vs /compact 全局压缩/可选说明引导)、与 Fork(--fork-session)区别、5 大使用场景推荐对照表,以及三大局限性(Bash 命令不追踪/外部变更不追踪/不能替代 Git 对比表)。

2026/3/94分钟 阅读ClaudeEagle

Checkpointing 是 Claude Code 内置的会话安全网——在每次编辑前自动保存代码状态,让你随时回退到任意历史节点,无需依赖 Git。

工作原理

Claude Code 在每次用户提示词创建前自动生成 Checkpoint:

  • 覆盖范围:所有通过 Claude 文件编辑工具修改的文件
  • 跨会话持久:续接对话时仍可访问历史 Checkpoint
  • 自动清理:随会话在 30 天后清除(可在 settings.json 中通过 cleanupPeriodDays 配置)

Checkpointing 只追踪 Claude 的文件编辑工具的变更,不追踪 Bash 命令(rmmvcp 等)产生的文件变化。

打开回退菜单(2 种方式)

bash
# 方式一:快捷键
Esc + Esc     # 连按两次 Esc

# 方式二:命令
/rewind       # 别名:/checkpoint

5 种回退/操作选项

在回退菜单中,滚动列表显示本次会话的所有提示词,选择目标节点后,有 5 个操作:

选项效果
Restore code and conversation代码文件和对话历史回退到该节点
Restore conversation对话历史回退,代码保持当前状态
Restore code代码文件回退,对话历史保持当前状态
Summarize from here从该节点起压缩后续消息为摘要(不修改文件)
Never mind返回消息列表,不做任何操作

恢复对话或摘要操作后,所选消息的原始提示词自动填回输入框,可直接重发或修改后重发。

「恢复」vs「摘要」深度对比

三种恢复选项

回退状态:撤销已做的事情。

  • 代码回退:磁盘文件恢复到该时间点的状态
  • 对话回退:后续消息从历史记录中移除
  • 组合回退:同时撤销代码和对话

「Summarize from here」

压缩上下文,不回退

  • 选中节点之前的消息完整保留
  • 选中节点及之后的消息被 AI 生成的摘要替换
  • 磁盘文件不变
  • 原始消息保留在会话记录中,Claude 需要时可以引用细节

/compact(压缩整个对话)的区别:

  • Summarize from here:保留早期上下文完整细节,只压缩后期冗余内容
  • /compact:压缩整个对话历史

可以传入可选说明,引导摘要的关注重点:

# 在回退菜单输入框中输入 Summarize focusing on the architecture decisions

与 Fork 的区别

如果你想保留原始会话,同时在一个新分支尝试不同方案:

bash
claude --continue --fork-session

这会创建一个新 Session ID,不影响原始会话。而「Summarize from here」和「Restore」都在同一会话内操作,无法保留原始状态。

常用场景

场景推荐操作
Claude 修改了错误的文件Restore code — 撤销文件,保留对话继续沟通
整个方向跑偏了Restore code and conversation — 完全重来
调试对话太冗长,但代码是对的Summarize from here — 压缩对话,释放上下文空间
想试试不同实现,又不想丢掉当前版本Fork--fork-session)— 保留原版,新开分支
对话混乱,代码没问题Restore conversation — 只清理对话历史

三大局限性

1. Bash 命令变更不追踪

bash
# 这些操作无法通过 Checkpoint 撤销:
rm file.txt
mv old.txt new.txt
cp source.txt dest.txt
npm install  # 修改 node_modules

只有 Claude 的文件编辑工具(Edit/Write)的变更才被追踪。通过 Bash 工具执行的文件操作不可撤销

2. 外部变更不追踪

  • 你在 Claude Code 外部手动修改的文件
  • 其他并发 Claude Code 会话的修改

除非这些外部变更恰好修改了当前会话也编辑过的同一文件。

3. 不能替代版本控制

Checkpointing 是「会话级本地撤销」,Git 是「永久历史」——两者互补,不能互相替代:

功能CheckpointGit
撤销粒度按提示词按 Commit
持久性30 天(可配置)永久
协作不支持支持
分支通过 Fork 间接实现原生支持

原文:Checkpointing - Claude Code Docs | 来源:Anthropic 官方文档

相关文章推荐

教程Claude Code Checkpointing 完全指南:会话回退、代码还原与 /rewind 分叉工作流Claude Code Checkpointing 完全指南:三种操作模式(代码回退/对话回退/摘要压缩)、/rewind 和 /fork 命令用法、分叉多方案探索工作流(从同一节点并行尝试 approach-a 和 approach-b)、Esc+Esc 快捷键,以及 Checkpointing 与 Git 的能力对比和最佳实践建议。2026/3/5教程Claude Code 企业进程审计实战:corporate launcher 与 processWrapper 配置指南详解 Claude Code 新增的 corporate launcher 企业启动器支持,通过 processWrapper 配置项统一审计和管控所有子进程,适合有严格 IT 合规要求的企业部署场景。2026/8/10教程Claude Code /fork 与 /subtask 命令实战:后台会话与临时子任务怎么选Claude Code Week 29 更新将 /fork 拆分为 /fork(后台独立会话)和 /subtask(会话内临时子任务),详解两者的区别、适用场景和升级注意事项。2026/8/10教程Claude Code Archive 插件源实战教程:不用 Git 和 npm,用一个 zip 就能装插件Claude Code v2.1.224 新增 archive 插件来源类型,详解如何用 HTTPS 托管的 zip 压缩包分发和安装插件,完全跳过 Git/npm,配合 SHA-256 哈希锁定保证完整性。2026/8/10教程Claude Code v2.1.221 深度解读:VS Code Focus View 与沙箱凭据脱敏新玩法Claude Code v2.1.221 新增 VS Code Focus View 折叠工具活动噪音,以及沙箱凭据文件 mask 脱敏模式,详解设计原理与多项 Shell 权限检查修复。2026/8/7教程Claude Code 屏幕阅读器模式完全教程:让 VoiceOver 和 NVDA 用户流畅使用命令行 AIClaude Code 屏幕阅读器模式完全指南:三种开启方式、确认提示时序、表格朗读优化等细节,帮助视障用户顺畅使用命令行 AI 工具。2026/8/6