檢查點 (Checkpointing)
Gemini CLI 包含一項「檢查點」(Checkpointing)功能,會在 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
旗標,為目前的 session 啟用檢查點功能:
gemini --checkpointing
使用 settings.json
檔案
若要為所有 session 預設啟用檢查點功能,您需要編輯您的 settings.json
檔案。
將以下鍵值新增到您的 settings.json
中:
{
"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
執行此指令後,您的檔案和對話將立即還原到建立檢查點時的狀態,而原始的工具提示也會再次出現。