检查点功能

功能概述

Gemini CLI 包含检查点功能,可在 AI 驱动的工具进行任何文件修改之前自动保存项目状态的快照。这让您可以安全地试验和应用代码更改,知道您可以随时恢复到工具运行前的状态。

工作原理

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

1. Git 快照

在位于您主目录的特殊影子 Git 存储库中创建提交(~/.gemini/history/<project_hash>)。此快照捕获当时项目文件的完整状态。它不会干扰您自己项目的 Git 存储库。

2. 对话历史

保存您与代理的完整对话历史直到那一刻。

3. 工具调用

存储即将执行的特定工具调用。

数据存储位置:

  • Git 快照: ~/.gemini/history/<project_hash>
  • 对话历史: ~/.gemini/tmp/<project_hash>/checkpoints

启用功能

检查点功能默认禁用。要启用它,您可以使用命令行标志或编辑 settings.json 文件。

使用命令行标志

您可以在启动 Gemini CLI 时使用 --checkpointing 标志为当前会话启用检查点:

gemini --checkpointing

使用 settings.json 文件

要默认为所有会话启用检查点,需要编辑您的 settings.json 文件:

{
  "checkpointing": {
    "enabled": true
  }
}

使用 /restore 命令

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

列出可用检查点

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

/restore

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

恢复特定检查点

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

/restore <检查点文件>

例如:

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

恢复后的效果:

  • 您的文件会立即恢复到检查点创建时的状态
  • 对话历史也会恢复
  • 原始工具提示会重新出现

功能优势

  • 安全实验: 可以大胆尝试代码更改,知道随时可以回退
  • 完整恢复: 不仅恢复文件,还恢复对话上下文
  • 本地存储: 所有数据都存储在本地,保护隐私
  • 自动化: 无需手动创建备份,系统自动管理