教程

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 命令(rm、mv、cp 等)产生的文件变化。

打开回退菜单(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教程MCP Server 2026 实战教程:五个值得优先安装的 Server 完整配置指南MCP Server 2026完整配置教程:详解Filesystem/Memory/GitHub/Playwright/Fetch五个值得优先安装的Server,附全局与项目级配置组织方式、验证与故障排查思路、远端MCP Server新特性(SSE)、安全考量清单,是Claude Code扩展工具能力的实战起点。2026/8/25教程Claude Code Hooks 6 大生产级实战场景:从一次 rm -rf 事故说起Claude Code Hooks完整实战指南:从rm -rf误删配置文件真实事故切入,详解PreToolUse/PostToolUse等6大生命周期事件,附危险命令拦截、敏感文件保护、自动Lint、上下文注入、异步审计、HTTP合规对接完整脚本,含退出码等关键踩坑点。2026/8/25教程Claude Code Week 34:/design 技能上线,可编辑 UI 画板、Concise 输出风格、手机一键启动会话Claude Code 2026年8月17-21日(Week 34)更新详解:全新/design技能带来可编辑UI画板工作流(研究预览)、Concise内置输出风格直给结果跳过过程叙述、Remote Control正式版支持手机一键启动本机会话,附完整使用方法与实战建议。2026/8/23教程Claude Code v2.1.239:修复 Bedrock 代理下静默双倍计费漏洞,/claude-api upgrade 一键迁移 SDK详解Claude Code v2.1.239更新:修复Bedrock流式传输代理剥离Content-Type头导致静默双倍计费的重要问题、数据驻留工作区成本估算加入1.1倍溢价、新增/claude-api upgrade一键迁移Python SDK到1.x、云端插件同步区分来源、Alpine musl原生插件加载修复。2026/8/22教程Claude Code v2.1.238:Remote Control 连接韧性大幅提升,新增 readline 风格快捷键详解Claude Code v2.1.238更新:新增keybindingFlavor readline快捷键风格、插件市场headersHelper动态认证头、自托管Runner缓冲关闭与代理认证增强、Remote Control网络断连/登录过期/进程崩溃后自动恢复等一揽子稳定性修复、长会话内存无限增长问题修复。2026/8/21