檢查點 (Checkpointing)
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
旗標,為目前的會話啟用檢查點功能:
gemini --checkpointing
使用 settings.json
檔案
若要為所有會話預設啟用檢查點功能,您需要編輯您的 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
執行此指令後,您的檔案和對話將會立即還原到建立檢查點時的狀態,並且原始的工具提示將會重新出現。