教程

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 MCP 完整使用指南:安装配置主流 MCP 服务器扩展 AI 能力Claude Code MCP(Model Context Protocol)完整使用指南:MCP 是什么(AI 工具扩展标准)、claude mcp 命令管理服务器(add/remove/list)、主流 MCP 服务器安装配置(文件系统/GitHub/PostgreSQL/Brave Search/Slack)、本地 stdio 与远程 SSE 两种连接方式、MCP 服务器安全配置、在 CLAUDE.md 中声明 MCP 工具使用规范,以及自定义 MCP 服务器的快速开发入门。2026/3/18教程Claude Code 输出格式控制完全指南:JSON、流式、结构化输出使用方法Claude Code 和 Claude API 输出格式完整控制指南:--output-format 参数(text/json/stream-json)、非交互模式(-p)的输出控制、结构化 JSON 输出(--json-schema 字段约束)、流式输出(Server-Sent Events)的处理方式、include-partial-messages 流式渐进显示、以及 CI/CD 管道中解析 JSON 输出的实用技巧。2026/3/18教程Claude Code 项目初始化最佳实践:新项目 5 分钟搭建完美 AI 编程环境Claude Code 新项目最佳初始化流程:CLAUDE.md 标准模板(项目背景/技术栈/代码规范/禁止操作)、.claudeignore 初始配置、.claude/commands/ 常用命令预置、settings.json 权限与模型设置、--init 命令的自动化初始化、项目级 vs 全局配置的优先级说明,以及不同类型项目(Web前端/后端API/全栈/开源库)的专项初始化模板。2026/3/18教程Claude Code 权限管理完全指南:精确控制 AI 能执行哪些操作Claude Code 权限系统完整解析:四种权限模式(default/acceptEdits/bypassPermissions/plan)、--allowedTools 和 --disallowedTools 精确工具控制、Bash 命令白名单语法(通配符匹配)、settings.json 持久化权限配置、CLAUDE.md 中的权限规则声明、CI/CD 自动化场景的权限配置、以及如何在效率和安全之间找到平衡点。2026/3/18教程Claude Code 自定义斜杠命令完全指南:用 /命令 封装常用工作流Claude Code 自定义斜杠命令(slash commands)完整教程:命令文件创建位置(.claude/commands/)、Markdown 格式规范、$ARGUMENTS 参数传递、项目级命令 vs 用户全局命令的区别、实用命令示例(/review、/test、/deploy-check、/refactor、/standup)、命令组合调用,以及如何在团队中共享和版本管理自定义命令。2026/3/18