使用者全程只記兩個詞——「開始」和「回滾」,檔案永遠可恢復。
觸發條件滿足其一:
不觸發的情況(誤觸發防護):
對每一個寫操作(修改/覆蓋/移動/刪除/新建後覆蓋)執行:
.backup/ 目錄(如不存在)原檔名.備份.YYYYMMDD-HHMMSS(同名同秒衝突時追加序號 -2、-3).backup/manifest.txt:
[時間] 檔案:src/config.py → 備份:config.py.備份.20260618-093000
[時間] 動作:修改 3 處(第 12、45、78 行)
日誌是回滾的依據,必須記錄「改了哪個檔案、改了什麼」,否則無法精確回滾。
正常執行使用者要求的修改,動作與日誌保持一致。
改動完成 ✅
- 改了:src/config.py(3 處:12、45、78 行)
- 備份:.backup/config.py.備份.20260618-093000
- 不滿意就說"回滾";沒問題就說"結束安全模式"
已恢復到修改前 ✅
- 恢復檔案:src/config.py
- 對應備份:config.py.備份.20260618-093000
- 後續修改的其它檔案未受影響(如需一起回滾,說"連 xxx 一起回滾").backup/trash/(帶時間戳),不真正刪除| 情況 | 處理方式 |
|---|---|
| 備份失敗(磁碟滿、無許可權) | 立即中止寫操作,報告原因,絕不"先改再說" |
| 使用者改完又改,連續多次 | 每次獨立備份+獨立日誌條目,回滾時按使用者選的那次 |
| 回滾會影響後來才改的檔案 | 回滾前說明"該檔案後來又被改過,回滾會丟失第二次修改,繼續嗎?" |
| .backup/ 越來越大 | 保留最近 3 份同名備份,更早的自動刪除(刪除前確認日誌完整) |
| 使用者忘了自己在安全模式 | 每次寫操作前輸出一行"已自動備份",讓使用者有感知 |
| 檔名帶特殊字元/長路徑 | 備份名只取檔名+時間戳,路徑記錄在 manifest 裡 |
7w4.net小蔥技能站收錄全網優質技能,值得收藏。
這個備份回滾工具功能設計很完善,能在修改檔案前自動備份,出錯時一鍵恢復,不用擔心改壞了救不回來。觸發機制考慮得很周到,誤觸發了也能識別。不過目前只有使用說明,沒有實際程式碼,能不能用還不知道。另外只能保護程式碼檔案,其他資料(如資料庫)不在範圍內。