Skip to Content
文件工作台復原中心

恢復中心

破壞性操作執行前,應用會先把相關狀態寫到本機快照。恢復中心(⌘K 搜索“恢復中心”,或從狀態欄的撤銷入口進入)負責列出、預覽、恢復與清理這些快照。

哪些操作會留下快照

操作快照內容
丟棄文件、片段、行或批量丟棄被丟棄改動的補丁;批量丟棄保存整棵工作區
刪除 Stash該 Stash 指向的提交
硬重置重置前的髒工作區
帶租約強推推送前的遠端尖端
中止合併、變基、揀選等操作中止時的工作區目錄

快照寫失敗會阻止對應操作執行,而不是先破壞再補救。

保留上限

  • 時間:24 小時
  • 數量:200 份
  • 體積:512 MiB

上限在打開倉庫時檢查並清理超出部分。快照目錄位於應用數據目錄;不可寫時回退到系統臨時目錄。清理過期條目會永久刪除文件,刪除前需要確認。

恢復

恢復會先檢查當前內容,再決定是否寫入:

  • 補丁類快照先做 git apply --check;
  • 文件類快照檢查目標路徑的現狀;
  • 如果快照之後文件又改過,恢復會停下來,不覆蓋新內容,並保留快照供你導出或手工比對。

批量應用時,所有補丁都會在第一次寫入前檢查完;只要有一處衝突,就什麼都不寫,並列出衝突路徑。

硬重置的快照恢復只寫文件,不會移動 HEAD。

強推之後找回

帶租約強推前會記錄遠端尖端,並用一個備份引用固定它。恢復時的行為是:

  • 先讀一次遠端;
  • 只有遠端仍停在強推後留下的那個提交,才把舊提交重新推回去;
  • 如果之後有人推送過,恢復停止且不做任何修改。

導出與刪除

  • 導出 — 把快照保存到指定位置,作為普通文件保留;
  • 刪除 — 永久刪除單條快照;
  • 清理過期 — 刪除當前倉庫中超過 24 小時的全部快照;
  • 搜索 — 按路徑、操作或類型過濾。

恢復失敗時快照不會消失,仍可導出。

與「撤銷提交」的區別

提交後 60 秒內的「撤銷」是 git reset --soft,把 HEAD 退回上一個提交,改動留在暫存區,不產生快照。它只處理當前 HEAD,並且在沒有進行中的操作時可用。其餘破壞性操作走恢復快照。

批量丟棄中斷

批量丟棄會先為整批寫一份工作區快照,再開始逐路徑寫入,同時維護一份日誌。如果進程在中間退出,重啓後狀態欄會提示上次批次未完成,並在恢復中心裏列出這份快照。

最後更新於