AgentHarness 课程

检查点与版本管理

3.7K字·10分钟·
检查点创建、历史记录、回滚策略、Git集成

引言

AI 修改代码时,最大的风险是什么?改坏了却回不去。

CodeBuddy 的检查点系统正是为解决这个问题——每次 AI 修改代码前自动创建快照,让你随时可以回退到任意历史状态。

核心价值:让 AI 大胆改,你放心看。改错了?一键回退。


一、检查点 vs Git

1.1 详细对比

特性检查点Git
创建方式自动(AI 修改前)手动(开发者 commit)
粒度每次 AI 操作每次有意义的变更
回退速度即时(内部快照)需要 checkout/merge
存储位置本地(CodeBuddy 管理)仓库(.git 目录)
适用场景AI 修改回退版本管理、团队协作
保留时间当前会话永久
可视化IDE 中直接查看需要 git log

1.2 什么时候用什么?

场景 1:AI 重构了 10 个文件,你发现方向不对
  → 检查点回退(即时)
  → 给 AI 新指令重新开始

场景 2:功能开发完成,需要提交代码
  → Git commit(永久保存)
  → 写清楚的 commit message

场景 3:AI 修改了 3 个文件,你想保留其中 2 个
  → 检查点回退到修改前
  → 手动保留想要的修改
  → 让 AI 只修改第 3 个文件

二、使用方式详解

2.1 通过 UI 操作(官方推荐)

CodeBuddy IDE 的检查点功能通过 UI 操作,不支持命令行方式:

查看检查点

  1. 在 IDE 侧栏找到「历史」标签页
  2. 查看检查点列表,包含时间戳和描述

回退到检查点

  1. 在历史标签页中选择目标检查点
  2. 点击「回退」按钮
  3. 确认回退操作

创建检查点

  • 检查点由 AI Agent 自动创建
  • 每次有意义的代码变更后自动保存
  • 也可以手动触发创建

2.2 检查点 vs Git

维度检查点Git
粒度每次 AI 操作每次有意义的变更
自动化AI 自动创建手动 commit
回退速度秒级需要 checkout
适用场景AI 操作回退版本管理

2.3 最佳实践

  1. 大胆尝试:有了检查点,可以放心让 AI 做激进改动
  2. 及时回退:发现问题立即回退,不要积累
  3. 结合 Git:检查点用于短期回退,Git 用于长期版本管理

2.1 查看检查点列表

通过 UI 查看

# 输出示例:
# checkpoint-003  2026-06-18 14:32  "重构 auth 模块"
# checkpoint-002  2026-06-18 14:28  "添加登录接口"
# checkpoint-001  2026-06-18 14:25  "创建 User 模型"

2.2 查看检查点详情

通过 UI 查看 checkpoint-002

# 输出:
# 创建时间:2026-06-18 14:28
# 触发操作:write_file
# 影响文件:
#   - src/auth/login.ts (新增)
#   - src/auth/index.ts (修改)
#   - package.json (修改)

2.3 回退到指定检查点

通过 UI 回退 checkpoint-001

# 输出:
# ✅ 已回退到 checkpoint-001
# 恢复文件:3 个
# 当前状态:创建 User 模型之后

2.4 手动创建检查点

AI 自动创建 "重要功能完成前的备份"

# 输出:
# ✅ 已创建 checkpoint-004

三、安全的 AI 修改工作流

3.1 推荐工作流

步骤 1:确保代码已提交
  git add . && git commit -m "before AI refactoring"

步骤 2:让 AI 开始修改
  AI 自动创建 checkpoint-001

步骤 3:审查 AI 的修改
  如果满意 → 继续
  如果不满意 → 通过 UI 回退 checkpoint-001

步骤 4:AI 继续修改
  AI 自动创建 checkpoint-002

步骤 5:全部完成后,提交到 Git
  git add . && git commit -m "AI refactoring complete"

3.2 实战案例

你:帮我重构 src/utils/ 目录,把重复代码合并

AI:好的,我先分析一下...
    (自动创建 checkpoint-001)
    发现 12 个重复函数,我将合并为 4 个工具模块

你:等一下,我想保留 date-utils.ts 的原始实现
AI:好的,回退到 checkpoint-001
    通过 UI 回退 checkpoint-001
    现在我只重构其他 3 个模块

AI:开始重构...
    (自动创建 checkpoint-002)
    ✅ 合并 string-utils.ts
    ✅ 合并 array-utils.ts
    ✅ 合并 validation-utils.ts

四、Git 集成

4.1 智能提交

CodeBuddy 的 /commit 命令会自动分析代码变更,生成有意义的 commit message:

/commit

# AI 分析变更:
# - 新增 src/auth/login.ts → feat
# - 修改 src/api/users.ts → feat (添加登录相关接口)
# - 新增 tests/auth/login.test.ts → test

# 自动生成:
# git commit -m "feat: add user authentication with JWT"

4.2 提交规范

CodeBuddy 遵循 Conventional Commits 规范:

变更类型前缀示例
新功能feat:feat: add user login
Bug 修复fix:fix: resolve auth token expiry
重构refactor:refactor: extract auth middleware
测试test:test: add login unit tests
文档docs:docs: update API documentation
样式style:style: format code with prettier

五、常见陷阱

陷阱 1:检查点不替代 Git

❌ 只用检查点管理版本,从不 commit
✅ 重要里程碑必须 commit,检查点只用于 AI 修改的临时回退

陷阱 2:检查点会占用磁盘

❌ 让 AI 运行 1000 次操作,创建 1000 个检查点
✅ 定期清理不需要的检查点

陷阱 3:回退后 AI 记忆仍在

❌ 回退检查点后,AI 还记得之前的修改
✅ 回退后开新会话,避免 AI 基于过时信息继续工作

六、总结

问题答案
检查点是什么?AI 修改前的自动快照
和 Git 的区别?检查点自动+临时,Git 手动+永久
如何回退?通过 UI 回退 <id>
最佳实践?Git 管版本,检查点管 AI 修改