简介
检查点(Checkpoints)是 Claude Code 的会话快照功能,可以保存项目当前文件变更状态、会话上下文,随时回滚到历史状态。
当连续做大量代码修改时,可以手动创建检查点;一旦改崩、需求变更,不用手动还原文件,一键恢复到保存快照时的项目状态。
区分概念
- 会话上下文:对话历史,
/clear清空。- Checkpoint(检查点):文件系统变更快照,记录文件修改,独立于对话上下文。
- Git:完整版本管理;检查点是轻量临时快照,适合会话内快速回滚,一般不替代Git提交。
工作原理
- 创建检查点时,Claude Code 扫描项目当前已修改文件,生成快照并分配唯一ID。
- 快照只记录本次会话内产生的文件改动,不会复制整个项目源码。
- 可以随时列出、查看、恢复、删除检查点。
- 会话关闭后,检查点默认会被清理(可配置持久保留)。
检查点斜杠命令
/checkpoint create [名称] # 创建检查点,自定义名称,例:/checkpoint create before-refactor
/checkpoint list # 列出当前会话所有检查点
/checkpoint restore [id] # 恢复到指定检查点,还原文件状态
/checkpoint describe [id] # 查看某个检查点详情:变更文件清单
/checkpoint delete [id] # 删除指定检查点
/checkpoint clear # 清空当前会话全部检查点
使用示例
# 重构前,创建快照 /checkpoint create before-user-module-refactor执行代码重构任务 将用户模块接口迁移至新目录,拆分TS类型 如果改动出现问题,回滚/checkpoint restore before-user-module-refactor
自动检查点配置
可以在项目 settings.json 开启自动创建检查点,在高危操作前自动快照。
{
"checkpoints": {
"autoCreate": true,
"autoCreateOnFileWrite": true,
"maxCount": 10
}
}
autoCreate:开启自动检查点autoCreateOnFileWrite:文件写入前自动生成快照maxCount:会话最多保留检查点数量,超出自动清理旧快照
修改配置后
/clear新建会话生效。
典型使用场景
✅ 推荐场景
- 大型重构、批量文件重命名、大量代码迁移
- 高风险代码修改,不确定效果,先打快照,方便一键回滚
- 尝试多种实现方案,来回切换对比不同修改版本
- 执行脚本、批量替换前,保存文件状态
❌ 不推荐场景
- 长期版本管理:正式版本记录优先使用Git,检查点仅会话内临时快照
- 极小改动,单文件几行修改,没必要创建检查点
检查点与权限、模式关系
- 创建/恢复检查点操作,遵循当前会话模式(Manual模式下,恢复文件变更需要审批)
- 受
.claude/rules权限管控,不能恢复被全局规则禁止修改的文件 - 恢复检查点不会改变会话对话历史,只还原磁盘上文件内容
最佳实践
- 高风险操作前手动命名检查点,命名清晰,方便识别用途
- 控制检查点数量,不用的快照及时删除,减少磁盘占用
- 即使使用检查点,重要变更仍然建议先Git提交,双重保障
- 多人协作:检查点保存在本地会话,不会提交到Git仓库
常见问题
- 恢复检查点后,文件没有变回预期状态
- 确认检查点ID正确;
- 检查是否有外部编辑器手动修改文件(外部改动不会被快照管理);
- Manual模式下,恢复文件变更需要点击批准。
- 会话关闭,检查点消失
默认检查点绑定当前会话,会话销毁自动清理;如需持久化,在settings.json开启持久选项。 - 检查点能恢复终端命令执行结果吗?
不能。检查点仅记录文件内容快照,无法回滚数据库变更、外部系统状态。
安全提示
- 检查点仅用于本地开发临时快照,不可作为备份方案
- 恢复检查点会覆盖当前文件改动,恢复前确认当前未保存变更已妥善处理
- 生产项目,恢复检查点的文件变更依然建议人工审阅
0 条笔记