8 8
9Claude Code 自动跟踪 Claude 在工作时所做的文件编辑,允许您快速撤销更改并回溯到之前的状态,以防任何事情出现偏差。9Claude Code 自动跟踪 Claude 在工作时所做的文件编辑,允许您快速撤销更改并回溯到之前的状态,以防任何事情出现偏差。
10 10
11## checkpointing 如何工作11<h2 id="how-checkpoints-work">
12 checkpointing 如何工作
13</h2>
12 14
13当您与 Claude 合作时,checkpointing 会自动捕获每次编辑前代码的状态。这个安全网让您可以放心地执行雄心勃勃的大规模任务,因为您始终可以返回到之前的代码状态。15当您与 Claude 合作时,checkpointing 会自动捕获每次编辑前代码的状态。这个安全网让您可以放心地执行雄心勃勃的大规模任务,因为您始终可以返回到之前的代码状态。
14 16
15### 自动跟踪17<h3 id="automatic-tracking">
18 自动跟踪
19</h3>
16 20
17Claude Code 跟踪其文件编辑工具所做的所有更改:21Claude Code 跟踪其文件编辑工具所做的所有更改:
18 22
20* Checkpoints 在会话之间持久存在,因此您可以在恢复的对话中访问它们24* Checkpoints 在会话之间持久存在,因此您可以在恢复的对话中访问它们
21* 在 30 天后自动清理(可配置)25* 在 30 天后自动清理(可配置)
22 26
23### 回溯和总结27<h3 id="rewind-and-summarize">
28 回溯和总结
29</h3>
24 30
25按两次 `Esc`(`Esc` + `Esc`)或使用 `/rewind` 命令打开回溯菜单。一个可滚动的列表显示会话中的每个提示。选择您想要操作的点,然后选择一个操作:31运行 `/rewind`,或在提示输入为空时按两次 `Esc`,打开回溯菜单。
32
33<Note>
34 如果提示输入包含文本,双 `Esc` 会清除它而不是打开菜单。清除的文本会保存到您的输入历史记录中,因此在您完成回溯菜单后,按 `Up` 可以调用它。
35</Note>
36
37回溯菜单列出了您在会话期间发送的每个提示。选择您想要操作的点,然后选择一个操作:
26 38
27* **恢复代码和对话**:将代码和对话都恢复到该点39* **恢复代码和对话**:将代码和对话都恢复到该点
28* **恢复对话**:回溯到该消息,同时保持当前代码40* **恢复对话**:回溯到该消息,同时保持当前代码
29* **恢复代码**:恢复文件更改,同时保持对话41* **恢复代码**:恢复文件更改,同时保持对话
30* **从此处总结**:将此点之后的对话压缩为摘要,释放 context window 空间42* **从此处总结**:将此点之后的对话压缩为摘要,释放 context window 空间
43* **到此处总结**:将此点之前的对话压缩为摘要,保持后续消息完整
31* **算了**:返回消息列表而不做任何更改44* **算了**:返回消息列表而不做任何更改
32 45
33恢复对话或选择"从此处总结"后,所选消息的原始提示会恢复到输入字段中,以便您可以重新发送或编辑它。46恢复对话或选择"从此处总结"后,所选消息的原始提示会恢复到输入字段中,以便您可以重新发送或编辑它。
34 47
35选择"算了"会让您留在消息列表,输入字段为空。48选择"到此处总结"会让您留在对话末尾,输入字段为空。
36 49
37#### 恢复与总结50<h4 id="restore-vs-summarize">
51 恢复与总结
52</h4>
38 53
39恢复选项恢复状态:它们撤销代码更改、对话历史或两者。总结选项将对话的一部分压缩为 AI 生成的摘要,而不改变磁盘上的文件:54恢复选项恢复状态:它们撤销代码更改、对话历史或两者。总结选项将对话的一部分压缩为 AI 生成的摘要,而不改变磁盘上的文件:
40 55
41* **从此处总结**:所选消息之前的消息保持不变。所选消息及其后的所有消息被替换为摘要。使用此选项可以放弃旁支讨论,同时保持早期上下文的完整细节。56* **从此处总结**:所选消息之前的消息保持不变。所选消息及其后的所有消息被替换为摘要。使用此选项可以放弃旁支讨论,同时保持早期上下文的完整细节。
42* **算了总结**:所选消息之前的消息被替换为摘要。所选消息及其后的所有消息保持不变,您留在对话的末尾。使用此选项可以压缩早期设置讨论,同时保持最近工作的完整细节。57* **到此处总结**:所选消息之前的消息被替换为摘要。所选消息及其后的所有消息保持不变,您留在对话的末尾。使用此选项可以压缩早期设置讨论,同时保持最近工作的完整细节。
43 58
44在这两种情况下,原始消息都保存在会话记录中,因此 Claude 可以在需要时参考详细信息。您可以输入可选说明来指导摘要的重点。这类似于 `/compact`,但更有针对性:您不是总结整个对话,而是选择所选消息的哪一侧进行压缩。59在这两种情况下,原始消息都保存在会话记录中,因此 Claude 可以在需要时参考详细信息。您可以输入可选说明来指导摘要的重点。这类似于 `/compact`,但更有针对性:您不是总结整个对话,而是选择所选消息的哪一侧进行压缩。
45 60
47 总结将您保持在同一会话中并压缩上下文。如果您想尝试不同的方法,同时保持原始会话完整,请改用 [fork](/zh-CN/sessions#branch-a-session)(`claude --continue --fork-session`)。62 总结将您保持在同一会话中并压缩上下文。如果您想尝试不同的方法,同时保持原始会话完整,请改用 [fork](/zh-CN/sessions#branch-a-session)(`claude --continue --fork-session`)。
48</Note>63</Note>
49 64
50## 常见用例65<h2 id="common-use-cases">
66 常见用例
67</h2>
51 68
52Checkpoints 在以下情况下特别有用:69Checkpoints 在以下情况下特别有用:
53 70
56* **迭代功能**:进行变体实验,知道您可以恢复到工作状态73* **迭代功能**:进行变体实验,知道您可以恢复到工作状态
57* **释放上下文空间**:从中点开始总结冗长的调试会话,保持初始说明完整74* **释放上下文空间**:从中点开始总结冗长的调试会话,保持初始说明完整
58 75
59## 限制76<h2 id="limitations">
77 限制
78</h2>
60 79
61### Bash 命令更改未跟踪80<h3 id="bash-command-changes-not-tracked">
81 Bash 命令更改未跟踪
82</h3>
62 83
63Checkpointing 不跟踪由 bash 命令修改的文件。例如,如果 Claude Code 运行:84Checkpointing 不跟踪由 bash 命令修改的文件。例如,如果 Claude Code 运行:
64 85
70 91
71这些文件修改无法通过回溯撤销。只有通过 Claude 的文件编辑工具进行的直接文件编辑才会被跟踪。92这些文件修改无法通过回溯撤销。只有通过 Claude 的文件编辑工具进行的直接文件编辑才会被跟踪。
72 93
73### 外部更改未跟踪94<h3 id="external-changes-not-tracked">
95 外部更改未跟踪
96</h3>
74 97
75Checkpointing 仅跟踪在当前会话中编辑过的文件。您在 Claude Code 外部对文件所做的手动更改以及来自其他并发会话的编辑通常不会被捕获,除非它们碰巧修改了与当前会话相同的文件。98Checkpointing 仅跟踪在当前会话中编辑过的文件。您在 Claude Code 外部对文件所做的手动更改以及来自其他并发会话的编辑通常不会被捕获,除非它们碰巧修改了与当前会话相同的文件。
76 99
77### 不是版本控制的替代品100<h3 id="not-a-replacement-for-version-control">
101 不是版本控制的替代品
102</h3>
78 103
79Checkpoints 设计用于快速的会话级恢复。对于永久版本历史和协作:104Checkpoints 设计用于快速的会话级恢复。对于永久版本历史和协作:
80 105
82* Checkpoints 补充但不替代适当的版本控制107* Checkpoints 补充但不替代适当的版本控制
83* 将 checkpoints 视为"本地撤销",将 Git 视为"永久历史"108* 将 checkpoints 视为"本地撤销",将 Git 视为"永久历史"
84 109
85## 另请参阅110<h2 id="see-also">
111 另请参阅
112</h2>
86 113
87* [Interactive mode](/zh-CN/interactive-mode) - 快捷键和会话控制114* [Interactive mode](/zh-CN/interactive-mode) - 快捷键和会话控制
88* [Commands](/zh-CN/commands) - 使用 `/rewind` 访问 checkpoints115* [Commands](/zh-CN/commands) - 使用 `/rewind` 访问 checkpoints