Checkpointing
追蹤、回溯和總結 Claude 的編輯和對話以管理會話狀態。
Claude Code 會自動追蹤 Claude 在您工作時所做的檔案編輯,讓您可以快速撤銷變更並回溯到先前的狀態,以防任何事情出現偏差。
Checkpointing 的運作方式
當您與 Claude 合作時,checkpointing 會自動捕捉每次編輯前的程式碼狀態。這個安全網讓您可以進行雄心勃勃的大規模任務,同時知道您可以隨時回到先前的程式碼狀態。
自動追蹤
Claude Code 追蹤由其檔案編輯工具所做的所有變更:
- 每個使用者提示都會建立一個新的 checkpoint
- Checkpoints 在會話之間持續存在,因此您可以在恢復的對話中存取它們
- 自動清理,與會話一起在 30 天後刪除(可配置)
回溯和總結
按兩次 Esc(Esc + Esc)或使用 /rewind 命令來開啟回溯選單。可滾動的清單顯示會話中的每個提示。選擇您想要操作的點,然後選擇一個動作:
- 恢復程式碼和對話:將程式碼和對話都回復到該點
- 恢復對話:回溯到該訊息,同時保持目前程式碼
- 恢復程式碼:回復檔案變更,同時保持對話
- 從此處總結:將此點之後的對話壓縮為摘要,釋放 context window 空間
- 算了:返回訊息清單而不進行任何變更
恢復對話或選擇「從此處總結」後,所選訊息的原始提示會恢復到輸入欄位中,以便您可以重新傳送或編輯它。
選擇「算了」會讓您留在訊息清單,不進行任何變更。
恢復與總結
恢復選項會回復狀態:它們撤銷程式碼變更、對話歷史或兩者。總結選項會將對話的一部分壓縮為 AI 生成的摘要,而不改變磁碟上的檔案:
- 從此處總結:所選訊息之前的訊息保持完整。所選訊息及其後的所有訊息都被替換為摘要。使用此選項可以捨棄旁支討論,同時保持早期上下文的完整詳細資訊。
- 算了:所選訊息之前的訊息被替換為摘要。所選訊息及其後的所有訊息保持完整,您保持在對話末尾。使用此選項可以壓縮早期設定討論,同時保持最近工作的完整詳細資訊。
在這兩種情況下,原始訊息都保存在會話記錄中,因此 Claude 可以在需要時參考詳細資訊。您可以輸入可選指示來引導摘要的重點。這類似於 /compact,但更有針對性:您不是總結整個對話,而是選擇所選訊息的哪一側要壓縮。
總結讓您保持在同一會話中並壓縮上下文。如果您想嘗試不同的方法,同時保持原始會話完整,請改用 fork(claude --continue --fork-session)。
常見使用案例
Checkpoints 在以下情況下特別有用:
- 探索替代方案:嘗試不同的實現方法,而不會失去起點
- 從錯誤中恢復:快速撤銷引入錯誤或破壞功能的變更
- 迭代功能:進行變化實驗,同時知道您可以回復到工作狀態
- 釋放上下文空間:從中點開始總結冗長的除錯會話,保持初始指示完整
限制
Bash 命令變更未追蹤
Checkpointing 不追蹤由 bash 命令修改的檔案。例如,如果 Claude Code 執行:
rm file.txt
mv old.txt new.txt
cp source.txt dest.txt
這些檔案修改無法透過回溯撤銷。只有透過 Claude 的檔案編輯工具進行的直接檔案編輯才會被追蹤。
外部變更未追蹤
Checkpointing 只追蹤在目前會話中已編輯的檔案。您在 Claude Code 外部對檔案所做的手動變更以及來自其他並行會話的編輯通常不會被捕捉,除非它們碰巧修改與目前會話相同的檔案。
不是版本控制的替代品
Checkpoints 設計用於快速的會話級恢復。對於永久版本歷史和協作:
- 繼續使用版本控制(例如 Git)進行提交、分支和長期歷史
- Checkpoints 補充但不替代適當的版本控制
- 將 checkpoints 視為「本地撤銷」,Git 視為「永久歷史」
另請參閱
- Interactive mode - 快捷鍵和會話控制
- Commands - 使用
/rewind存取 checkpoints - CLI reference - 命令列選項