Claude Code官方文档Checkpointing会话状态

Claude Code Checkpointing - 回滚 Claude 编辑与会话状态

跟踪、回溯和总结 Claude 的编辑和对话以管理会话状态——为雄心勃勃的任务提供安全网,让你随时返回之前的代码状态。

· 阅读约 4 分钟

Claude Code 自动跟踪 Claude 在工作时所做的文件编辑,允许您快速撤销更改并回溯到之前的状态,以防任何事情出现偏差。

checkpointing 如何工作

当您与 Claude 合作时,checkpointing 会自动捕获每次编辑前代码的状态。这个安全网让您可以放心地执行雄心勃勃的大规模任务,因为您始终可以返回到之前的代码状态。

自动跟踪

Claude Code 跟踪其文件编辑工具所做的所有更改:

  • 每个用户提示都会创建一个新的 checkpoint
  • Checkpoints 在会话之间持久存在,因此您可以在恢复的对话中访问它们
  • 在 30 天后自动清理(可配置)

回溯和总结

按两次 EscEsc + Esc)或使用 /rewind 命令打开回溯菜单。一个可滚动的列表显示会话中的每个提示。选择您想要操作的点,然后选择一个操作:

  • 恢复代码和对话:将代码和对话都恢复到该点
  • 恢复对话:回溯到该消息,同时保持当前代码
  • 恢复代码:恢复文件更改,同时保持对话
  • 从此处总结:将此点之后的对话压缩为摘要,释放 context window 空间
  • 算了:返回消息列表而不做任何更改

恢复对话或总结后,所选消息的原始提示会恢复到输入字段中,以便您可以重新发送或编辑它。

恢复与总结

三个恢复选项恢复状态:它们撤销代码更改、对话历史或两者。“从此处总结”的工作方式不同:

  • 所选消息之前的消息保持不变
  • 所选消息及其后的所有消息被替换为紧凑的 AI 生成的摘要
  • 磁盘上的文件不会改变
  • 原始消息保存在会话记录中,因此 Claude 可以在需要时参考详细信息

这类似于 /compact,但更有针对性:您不是总结整个对话,而是保持早期上下文的完整细节,只压缩占用空间的部分。您可以输入可选说明来指导摘要的重点。

ℹ️ 总结将您保持在同一会话中并压缩上下文。如果您想尝试不同的方法,同时保持原始会话完整,请改用 fork(claude --continue --fork-session)。

常见用例

Checkpoints 在以下情况下特别有用:

  • 探索替代方案:尝试不同的实现方法,而不会丢失起点
  • 从错误中恢复:快速撤销引入错误或破坏功能的更改
  • 迭代功能:进行变体实验,知道您可以恢复到工作状态
  • 释放上下文空间:从中点开始总结冗长的调试会话,保持初始说明完整

限制

Bash 命令更改未跟踪

Checkpointing 不跟踪由 bash 命令修改的文件。例如,如果 Claude Code 运行:

rm file.txt
mv old.txt new.txt
cp source.txt dest.txt

这些文件修改无法通过回溯撤销。只有通过 Claude 的文件编辑工具进行的直接文件编辑才会被跟踪。

外部更改未跟踪

Checkpointing 仅跟踪在当前会话中编辑过的文件。您在 Claude Code 外部对文件所做的手动更改以及来自其他并发会话的编辑通常不会被捕获,除非它们碰巧修改了与当前会话相同的文件。

不是版本控制的替代品

Checkpoints 设计用于快速的会话级恢复。对于永久版本历史和协作:

  • 继续使用版本控制(例如 Git)进行提交、分支和长期历史
  • Checkpoints 补充但不替代适当的版本控制
  • 将 checkpoints 视为”本地撤销”,将 Git 视为”永久历史”

另请参阅

  • Interactive mode - 快捷键和会话控制
  • Built-in commands - 使用 /rewind 访问 checkpoints
  • CLI reference - 命令行选项

本文翻译自 Anthropic Claude Code 官方文档,最近一次同步:2025-05-01。