Skip to content

检查点

Gemini CLI 包含一个检查点功能,可以在 AI 驱动的工具进行任何文件修改之前自动保存项目状态的快照。这允许你安全地实验和应用代码更改,因为你知道可以立即恢复到工具运行之前的状态。

工作原理

当你批准一个修改文件系统的工具(如 write_filereplace)时,CLI 会自动创建一个"检查点"。这个检查点包括:

  1. Git 快照: 在位于你主目录(~/.gemini/history/<project_hash>)的特殊影子 Git 仓库中创建一个提交。这个快照捕获了那一刻项目文件的完整状态。它不会干扰你自己项目的 Git 仓库。
  2. 对话历史: 到那时为止你与代理的整个对话都会被保存。
  3. 工具调用: 即将执行的特定工具调用也会被存储。

如果你想撤销更改或只是想回退,可以使用 /restore 命令。恢复检查点将:

  • 将项目中的所有文件恢复到快照中捕获的状态。
  • 恢复 CLI 中的对话历史。
  • 重新提出原始工具调用,允许你再次运行它、修改它或简单地忽略它。

所有检查点数据,包括 Git 快照和对话历史,都存储在你的本地机器上。Git 快照存储在影子仓库中,而对话历史和工具调用保存在项目临时目录中的 JSON 文件中,通常位于 ~/.gemini/tmp/<project_hash>/checkpoints

启用功能

检查点功能默认是禁用的。要启用它,你需要编辑 settings.json 文件。

注意: --checkpointing 命令行标志在 0.11.0 版本中已被移除。检查点现在只能通过 settings.json 配置文件启用。

在你的 settings.json 中添加以下键:

json
{
  "general": {
    "checkpointing": {
      "enabled": true
    }
  }
}

使用 /restore 命令

启用后,检查点会自动创建。要管理它们,使用 /restore 命令。

列出可用的检查点

要查看当前项目所有已保存检查点的列表,只需运行:

/restore

CLI 将显示可用检查点文件的列表。这些文件名通常由时间戳、正在修改的文件名和即将运行的工具名组成(例如 2025-06-22T10-00-00_000Z-my-file.txt-write_file)。

恢复特定检查点

要将项目恢复到特定检查点,使用列表中的检查点文件:

/restore <checkpoint_file>

例如:

/restore 2025-06-22T10-00-00_000Z-my-file.txt-write_file

运行命令后,你的文件和对话将立即恢复到创建检查点时的状态,原始工具提示将重新出现。

aicodex 文档网站