检查点
跟踪、回退和总结 CSC 的编辑与对话,以管理会话状态。
CSC 会自动跟踪工作过程中对文件的编辑,让你在出现偏差时能够快速撤销更改并回退到之前的状态。
检查点的工作原理
当你与 CSC 协作时,检查点功能会在每次编辑前自动捕获代码状态。这个安全网让你可以放心地执行大规模任务,因为你知道随时可以回到之前的代码状态。
自动跟踪
CSC 会跟踪其文件编辑工具所做的所有更改:
- 每个用户提示都会创建一个新的检查点
- 检查点在会话之间持久保存,因此你可以在恢复的对话中访问它们
- 30 天后会随会话一起自动清理(可配置)
回退与总结
按两次 Esc(Esc + Esc)或使用 /rewind 命令打开回退菜单。滚动列表会显示会话中的每个提示。选择你要操作的时间点,然后选择一个操作:
- 恢复代码和对话:将代码和对话都恢复到该时间点
- 恢复对话:回退到该消息,同时保留当前代码
- 恢复代码:恢复文件更改,同时保留对话
- 从此处总结:将该时间点之后的对话压缩为摘要,释放上下文窗口空间
- 算了:返回消息列表,不做任何更改
恢复对话或总结后,所选消息的原始提示会恢复到输入框中,以便你重新发送或编辑。
恢复与总结的区别
三个恢复选项会回退状态:它们撤销代码更改、对话历史或两者兼有。"从此处总结"的工作方式不同:
- 所选消息之前的消息保持不变
- 所选消息及其后的所有消息会被替换为紧凑的 AI 生成摘要
- 磁盘上的文件不会更改
- 原始消息保留在会话记录中,因此 CSC 在需要时可以引用其中的细节
这类似于 /compact,但更有针对性:不是总结整个对话,而是完整保留早期上下文,只压缩占用空间的部分。你可以输入可选的指令来引导摘要的重点。
注意: 总结会让你留在同一会话中并压缩上下文。如果你想在不破坏原始会话的情况下分支尝试不同的方法,请改用 fork(
csc --continue --fork-session)。
常见用例
检查点在以下情况下特别有用:
- 探索替代方案:尝试不同的实现方式而不丢失起点
- 从错误中恢复:快速撤销引入 bug 或破坏功能的更改
- 迭代功能:在知道可以回退到工作状态的情况下尝试不同变体
- 释放上下文空间:从中间位置开始总结冗长的调试会话,同时保留初始指令
限制
不跟踪 Bash 命令的更改
检查点不跟踪 bash 命令修改的文件。例如,如果 CSC 运行:
rm file.txt
mv old.txt new.txt
cp source.txt dest.txt
这些文件修改无法通过回退撤销。只有通过 CSC 文件编辑工具进行的直接文件编辑才会被跟踪。
不跟踪外部更改
检查点只跟踪在当前会话中编辑过的文件。你在 CSC 外部手动对文件所做的更改以及其他并发会话的编辑通常不会被捕获,除非它们恰好修改了与当前会话相同的文件。
不能替代版本控制
检查点旨在实现快速的会话级别恢复。对于永久版本历史和协作:
- 继续使用版本控制(如 Git)进行提交、分支和长期历史记录
- 检查点是对版本控制的补充,但不能替代
- 可以将检查点视为"本地撤销",将 Git 视为"永久历史"