有一個念頭很容易冒出來:Claude Code 有自動存檔,那我是不是不用 commit 了?
它確實有。每次你按送出之前,它會先存一份當下的檔案快照,事後打 /rewind,或在輸入框空白時連按兩下 Esc,就能開啟還原選單。官方文件列的選項有五個:還原程式碼和對話、只還原對話、只還原程式碼,以及兩種摘要,把這個點之後的壓掉,或把這個點之前的壓掉。2026 年 6 月起還多了一個功能,/clear 清空之後,還能從選單頂端回到前一場對話。
很好用。可是它守得住的範圍,比多數人以為的窄很多。
救得回 救不回 AI 用編輯工具改的檔案 bash 指令(rm、mv、cp) 對話歷史 子代理在背景改的 最近 100 個檢查點 外部程式或別的視窗改的 大約 30 天內 連結檔(symlink、hard link)
它只記得編輯工具改的東西
還原救得回來的,是 AI 透過檔案編輯工具改的東西。同一場對話裡,如果它是用指令去刪檔、搬檔、覆蓋檔,那一段就不在快照裡。快照記的是編輯工具的動作,它沒有去拍整個磁碟。
子代理也一樣。你派出去在背景跑的那些,它們的編輯不進主對話的檢查點,官方直接寫明要用 git 還原。你在另一個終端機或編輯器改的東西,它更看不到。
時間上也有限制:檔案快照只保留最近 100 個檢查點,工作階段資料預設大約 30 天就會清掉。太舊的點按下去,它會告訴你沒有檔案被還原。連結檔在還原時會被跳過,訊息裡會說跳過了幾個。
兩套要搭著用
寫到一半發現方向錯了,想退回三步重講一次,用還原鍵,快,而且連對話一起倒回去。整段功能做壞了、昨天的版本才是對的、或者剛剛出問題的是 bash 指令,就用 git,因為指令造成的改動還原鍵看不到,只能靠 git 裡更早的那一版。
所以那句老話還是對的:先 commit 再讓它動手。動大工程之前,先 commit 一次,再開一條分支,然後才放手讓它跑。
動手做
現在就打一次 /rewind,把選單五個選項看過一遍,認一下哪個是只還原對話、哪個是只還原程式碼。平常認得,出事時才不會手忙腳亂。
長對話塞太滿的時候,用「摘要到這裡」把前半段壓掉,原始訊息還留在紀錄裡,只是不再佔用視窗。
要它自己講清楚會動到什麼,交辦之前先貼這段:
接下來這個任務你動手之前,先回答我三件事,不要開始做: 1. 你會用檔案編輯工具改哪些檔案?逐一列出。 2. 你會用哪些 shell 指令?其中哪些會刪除、搬移或覆蓋既有檔案? 3. 上面第 2 題列到的那些,如果做壞了,內建的還原救不回來。 告訴我你建議我先做哪一個 git 動作當安全網。 確認完我會說「開始」,你才動手。
交辦大工程之前打一次 git status,如果還有沒 commit 的改動,先 commit 掉,再讓它開始。
站內延伸
- 存檔與還原的三個動作 → 不會寫程式也要懂的 Git
- 讓它在隔離的地方試錯 → 別讓 AI 在主線上試錯
- 交接與留痕的做法 → 找方法AI 留痕與交接
來源: Claude Code:Checkpointing(/rewind 與雙擊 Esc、選單選項、只追蹤編輯工具、bash 與子代理的改動救不回、100 個檢查點與約 30 天保留、連結檔跳過);Claude Code:週報 2026-w20(「摘要到這裡」壓縮先前脈絡);Claude Code:週報 2026-w26(/rewind 可回到 /clear 之前的對話)。
還原鍵救不回指令刪掉的檔案,
動大工程前先存版本
什麼時候看這張:你知道它會自動存檔,正想省掉版本紀錄,直接讓它動大工程。
- 它只記編輯工具改的檔案,用指令刪搬的不在快照裡
- 背景子代理和別的視窗改的,它都看不到
- 檢查點只留最近一百個,資料約三十天清掉
第一個動作打開還原選單把五個選項看一遍,認出哪個只還原對話、哪個只還原程式碼。/rewind 或連按兩下 Esc;大工程前先 git commit