跳到主要内容

检查点

检查点会在Kilo Code任务期间自动对你的工作区文件进行版本控制,使你能够安全地探索AI建议并轻松恢复不想要的更改。

检查点让你可以:

  • 安全地尝试AI建议的更改
  • 轻松恢复不想要的修改
  • 比较不同的实现方法
  • 恢复到之前的项目状态而不会丢失工作
重要提示
  • 检查点默认启用。
  • 必须安装Git才能使用检查点功能 - 查看安装说明
  • 不需要GitHub账号或仓库
  • 不需要配置Git个人信息
  • 影子Git仓库独立于你项目现有的Git配置

配置选项

在Kilo Code设置的"检查点"部分可以配置检查点:

  1. 点击齿轮图标 → 检查点 打开设置

  2. 勾选或取消勾选"启用自动检查点"选项

    Kilo Code配置中的检查点设置

检查点工作原理

Kilo Code使用一个独立于主版本控制系统的影子Git仓库来捕获项目状态的快照。这些快照称为检查点,会在AI辅助工作流中自动记录更改——无论是任务开始、文件更改还是命令运行时。

检查点作为提交存储在影子仓库中,记录:

  • 文件内容更改
  • 新增的文件
  • 删除的文件
  • 重命名的文件
  • 二进制文件的更改

使用检查点

检查点通过聊天界面直接集成到你的工作流中。

检查点在聊天历史记录中以两种形式出现:

  • 初始检查点标记项目开始状态

    聊天中的初始检查点指示器
  • 常规检查点在文件修改或命令执行后出现

    聊天中的常规检查点指示器

每个检查点提供两个主要功能:

查看差异

要比较当前工作区与之前的检查点:

  1. 在聊天历史记录中找到检查点

  2. 点击检查点的查看差异按钮

    查看差异按钮界面
  3. 在比较视图中查看差异:

    • 新增的行以绿色高亮显示
    • 删除的行以红色高亮显示
    • 修改的文件会列出详细更改
    • 重命名和移动的文件会跟踪路径更改
    • 新增或删除的文件会被明确标记
检查点的查看差异选项

恢复检查点

要将项目恢复到之前的检查点状态:

  1. 在聊天历史记录中找到检查点

  2. 点击检查点的恢复检查点按钮

    恢复检查点按钮界面
  3. 选择以下恢复选项之一:

    恢复检查点选项
    • 仅恢复文件 - 仅将工作区文件恢复到检查点状态,不修改对话历史记录。适用于在保持聊天上下文的同时比较不同实现方案的理想选择。此选项不需要确认,可以快速在不同实现方案之间切换。

    • 恢复文件和任务 - 恢复工作区文件并删除所有后续对话消息。当你想完全重置代码和对话到检查点的时间点时使用。此选项需要在对话框中确认,因为无法撤销。

      恢复检查点文件和任务的确认对话框

限制和注意事项

  • 范围:检查点仅捕获Kilo Code任务期间所做的更改
  • 外部更改:在任务之外所做的修改(手动编辑、其他工具)不会被包含
  • 大文件:非常大的二进制文件可能会影响性能
  • 未保存的工作:恢复将覆盖工作区中任何未保存的更改

技术实现

检查点架构

检查点系统由以下部分组成:

  1. 影子Git仓库:专门为检查点跟踪创建的独立Git仓库,作为检查点状态的持久存储机制。

  2. 检查点服务:通过以下方式处理Git操作和状态管理:

    • 仓库初始化
    • 检查点创建和存储
    • 差异计算
    • 状态恢复
  3. UI组件:显示在聊天界面中与检查点交互的界面元素。

恢复过程

当执行恢复时,Kilo Code:

  • 硬重置到指定的检查点提交
  • 将影子仓库中的所有文件复制到工作区
  • 更新内部检查点跟踪状态

存储类型

检查点是任务范围的,意味着它们只针对单个任务。

差异计算

检查点比较使用Git的底层差异功能来生成结构化的文件差异:

  • 修改的文件显示逐行更改
  • 二进制文件被正确检测和处理
  • 重命名和移动的文件被正确跟踪
  • 文件的创建和删除被明确标识

文件排除和忽略模式

检查点系统使用智能文件排除来跟踪相关文件:

内置排除

系统有全面的内置排除模式,自动忽略:

  • 构建产物和依赖目录(node_modules/, dist/, build/
  • 媒体文件和二进制资源(图片、视频、音频)
  • 缓存和临时文件(.cache/, .tmp/, .bak
  • 包含敏感信息的配置文件(.env
  • 大数据文件(归档文件、可执行文件、二进制文件)
  • 数据库文件和日志

这些模式在初始化时被写入影子仓库的.git/info/exclude文件。

.gitignore支持

检查点系统尊重工作区中的.gitignore模式:

  • .gitignore排除的文件不会触发检查点创建
  • 排除的文件不会出现在检查点差异中
  • 在暂存文件更改时应用标准Git忽略规则

.kilocodeignore行为

.kilocodeignore文件(控制AI对文件的访问)与检查点跟踪是分开的:

  • .kilocodeignore排除但未被.gitignore排除的文件仍会被检查点跟踪
  • 对AI不可访问文件的更改仍可以通过检查点恢复

这种分离是故意的,因为.kilocodeignore限制的是AI可以访问的文件,而不是应该被跟踪进行版本历史记录的文件。

嵌套Git仓库

检查点系统对嵌套Git仓库有特殊处理:

  • 在操作期间将嵌套的.git目录临时重命名为.git_disabled
  • 操作完成后恢复它们
  • 允许正确跟踪嵌套仓库中的文件
  • 确保嵌套仓库保持功能不受影响

并发控制

操作被排队以防止可能破坏仓库状态的并发Git操作。这确保了即使快速连续请求检查点操作也能安全完成。

Git安装

检查点要求系统上安装Git。该实现使用simple-git库,它依赖Git命令行工具来创建和管理影子仓库。

macOS

  1. 使用Homebrew安装(推荐)

    brew install git
  2. 替代方案:使用Xcode命令行工具安装

    xcode-select --install
  3. 验证安装

    • 打开终端
    • 输入git --version
    • 你应该看到类似git version 2.40.0的版本号

Windows

  1. 下载Git for Windows

  2. 运行安装程序

    • 接受许可协议
    • 选择安装位置(推荐默认)
    • 选择组件(通常默认选项足够)
    • 选择默认编辑器
    • 选择如何使用Git命令行(推荐:Git from the command line and also from 3rd-party software)
    • 配置行尾转换(推荐:Checkout Windows-style, commit Unix-style)
    • 完成安装
  3. 验证安装

    • 打开命令提示符或PowerShell
    • 输入git --version
    • 你应该看到类似git version 2.40.0.windows.1的版本号

Linux

Debian/Ubuntu:

sudo apt update
sudo apt install git

Fedora:

sudo dnf install git

Arch Linux:

sudo pacman -S git

验证安装

  • 打开终端
  • 输入git --version
  • 你应该看到版本号