检查点
Gemini CLI 包含一个检查点功能,它会在 AI 驱动的工具进行任何文件修改之前自动保存项目状态的快照。这使您可以安全地试验和应用代码更改,因为您知道可以立即恢复到工具运行之前的状态。
工作原理
当您批准一个修改文件系统(如 write_file 或 replace)的工具时,CLI 会自动创建一个“检查点”。此检查点包括:
- Git 快照: 在您主目录 (
~/.gemini/history/<project_hash>) 中一个特殊的影子 Git 仓库中进行提交。此快照捕获了当时项目文件的完整状态。它不会干扰您自己的项目 Git 仓库。 - 对话历史记录: 您与代理的整个对话历史记录都将保存。
- 工具调用: 即将执行的特定工具调用也将存储。
如果您想撤消更改或只是返回,可以使用 /restore 命令。恢复检查点将:
- 将项目中的所有文件恢复到快照中捕获的状态。
- 恢复 CLI 中的对话历史记录。
- 重新提出原始工具调用,允许您再次运行它、修改它或只是忽略它。
所有检查点数据,包括 Git 快照和对话历史记录,都存储在您的本地计算机上。Git 快照存储在影子仓库中,而对话历史记录和工具调用则保存在项目临时目录中的 JSON 文件中,通常位于 ~/.gemini/tmp/<project_hash>/checkpoints。
启用功能
检查点功能默认禁用。要启用它,您可以使用命令行标志或编辑 settings.json 文件。
使用命令行标志
您可以在启动 Gemini CLI 时使用 --checkpointing 标志为当前会话启用检查点:
|
|
使用 settings.json 文件
要为所有会话默认启用检查点,您需要编辑 settings.json 文件。
将以下键添加到您的 settings.json 中:
|
|
使用 /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
运行命令后,您的文件和对话将立即恢复到创建检查点时的状态,并且原始工具提示将重新出现。