教程

Claude Code Checkpointing 完全指南:会话回退、代码还原与 /rewind 分叉工作流

Claude Code Checkpointing 完全指南:三种操作模式(代码回退/对话回退/摘要压缩)、/rewind 和 /fork 命令用法、分叉多方案探索工作流(从同一节点并行尝试 approach-a 和 approach-b)、Esc+Esc 快捷键,以及 Checkpointing 与 Git 的能力对比和最佳实践建议。

2026/3/54分钟 阅读ClaudeEagle

Claude Code 的 Checkpointing 功能让你可以随时将对话和代码回退到任意历史节点,或从某条消息创建分叉,是多轮迭代编码不可或缺的安全网。

什么是 Checkpointing

Checkpoint 是对话历史中的一个时间节点。每次 Claude Code 完成一轮工作后,当前的对话状态和代码修改都会被记录为一个隐式的检查点。

Checkpointing 解决的核心问题:

  • 「Claude 改坏了,我想回到之前」——只需回退即可,无需手动 git reset
  • 「我想试试另一种方案」——从同一节点分叉,同时探索两条路径
  • 「这一段对话太长了,影响后续质量」——摘要压缩特定范围的历史

/rewind 命令

/rewind 是访问 Checkpointing 功能的主命令(别名:/checkpoint):

/rewind

运行后,Claude Code 会打开一个交互式历史浏览器,显示当前对话中的所有轮次。使用方向键选择要回退到的节点,确认后执行。

也可以通过 Esc + Esc 快捷键快速触发(倒回或摘要)。

三种操作模式

1. 代码回退(Code Rewind)

文件系统中的代码文件还原到所选时间点的状态,对话历史保持不变(或同步回退)。

适用场景:

  • Claude 的修改引入了 Bug 或破坏了原有逻辑
  • 想撤销多轮迭代后的所有代码改动
  • 快速对比「修改前」和「修改后」
# 工作流示例 1. Claude 重构了你的认证模块(第 5 轮) 2. 你发现新代码有问题 3. /rewind → 选择第 3 轮节点 → 选择「代码 + 对话全部回退」 4. 回到第 3 轮的状态,重新指导 Claude

2. 对话回退(Conversation Rewind)

对话历史回退到所选节点,代码文件可选择是否同步还原。

适用场景:

  • 对话方向跑偏,需要从某个节点重新引导
  • 想重新提问/换一种表达方式
  • 保留代码改动,但重置对话上下文

3. 摘要(Summarize)

从选定的消息开始,将该消息之后的对话历史压缩摘要,释放 Context 空间:

/rewind → 选择消息 → 选择「从此摘要」

适用场景:

  • 长对话导致 Context 接近上限
  • 保留关键进展,但不需要完整的中间步骤
  • 为后续任务腾出 Context 空间

分叉工作流(Fork)

/fork [name] 命令从当前对话的当前节点创建一个分支:

bash
/fork approach-a   # 创建名为 approach-a 的分支,继续当前对话

完整的分叉探索流程:

主会话(已完成需求分析,第 8 轮) ↓ /fork approach-a → 尝试方案 A(重写为函数式风格) ↓ /rewind → 回到第 8 轮 ↓ /fork approach-b → 尝试方案 B(面向对象重构) ↓ 对比两个分支的结果,选择最优方案 ↓ /resume approach-a # 恢复到最优分支继续工作

分叉的工作流让你可以在同一个起点探索多种实现方案,而不会污染主对话历史。

与 Git 的配合

Checkpointing 与 Git 互补而不替代:

能力CheckpointingGit
粒度每轮对话每次 commit
包含对话历史
适合实验探索✅(轻量级)✅(worktree)
团队协作
持久化会话内永久

最佳实践:在关键里程碑(功能完成、测试通过)时同时执行 git commit,日常探索使用 /rewind/fork

键盘快捷键

操作快捷键
触发回退/摘要Esc + Esc
交互式历史浏览/rewind 后使用方向键
创建分叉/fork [name]
恢复分叉/resume [session-id 或 name]

常见问题

Q:回退后代码文件会变化吗? A:取决于你选择的回退模式。「代码 + 对话」模式会同步还原文件;「仅对话」模式不修改文件。

Q:Checkpoint 存在哪里? A:存储在 Claude Code 的会话状态中(~/.claude/sessions/),不影响 Git 工作区。

Q:/rewind 和 /fork 有什么区别? A:/rewind 是在同一会话内回退到过去节点;/fork 是从当前节点创建一个新的独立会话分支,原会话继续存在。

Q:摘要会丢失信息吗? A:摘要保留关键决策和上下文,丢弃中间的冗余步骤。如果需要完整历史,建议先导出(/export)再摘要。


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

相关文章推荐

教程Claude Code 自定义斜杠命令完全指南:用 /命令 封装常用工作流Claude Code 自定义斜杠命令(slash commands)完整教程:命令文件创建位置(.claude/commands/)、Markdown 格式规范、$ARGUMENTS 参数传递、项目级命令 vs 用户全局命令的区别、实用命令示例(/review、/test、/deploy-check、/refactor、/standup)、命令组合调用,以及如何在团队中共享和版本管理自定义命令。2026/3/18教程Claude Code Skills 自定义命令:打造你的团队专属 AI 工作流Claude Code Skills 自定义命令完整教程:Skills vs CLAUDE.md 使用场景对比、内置 Skills 速览(/batch/simplify/loop)、SKILL.md 文件格式与 Frontmatter 配置、四大实用 Skills 示例(代码审查/部署检查/功能开发/团队 OnBoarding)、传参方式、子代理执行与 Git 团队共享。2026/3/14教程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/9教程Claude Code Hooks 实战指南:5 大自动化场景、三种 Hook 类型与故障排查Claude Code Hooks 实战指南:/hooks 交互菜单四步创建桌面通知 Hook、5 大常用自动化场景(等待通知/编辑后 Prettier 格式化/退出码 2 阻止受保护文件/PostCompact 重注入上下文/ConfigChange 审计日志)、四种 Hook 类型(command/prompt-based/agent-based/HTTP Webhook)、输入/输出机制(stdin JSON/stdout 注入上下文/退出码 0 继续/2 阻止/非零警告)、结构化 JSON 输出、Matcher 过滤器语法(Edit|Write/Bash(git *)/*/空字符串)、四级存储位置,以及五大故障排查方法和调试技巧。2026/3/8教程Claude Code Hooks 完全指南:五大自动化场景、三类 Hook 类型与 JSON 输入输出规范Claude Code Hooks 完整指南:30 秒创建第一个 Hook(/hooks 交互菜单)、五大常用场景(通知/自动格式化/保护文件/压缩后注入上下文/审计配置变更)、六个生命周期事件(PreToolUse/PostToolUse/Notification/PostCompact/SessionStart/Stop)、四类 Hook 类型(Command/Prompt/Agent/HTTP)、JSON 输入输出规范(decision/reason/output/updatedInput)、Matcher 过滤语法,以及五大故障排查方法。2026/3/6教程Claude Code Hooks 实战指南:自动格式化、桌面通知与文件保护Claude Code Hooks 实战指南:5 大场景(桌面通知、自动格式化、文件保护、压缩后注入上下文、配置审计)的完整配置,Hook 输入/输出 JSON 格式,事件类型(PreToolUse/PostToolUse/Notification/PostCompact),以及提示型和 Agent 型 Hook。2026/3/2