場景痛點
開發時不小心刪除專案檔案,或修改代碼後想回溯舊版本,沒有版本控制 (Git/SVN) 或未提交怎麼辦?Eclipse 內建 **Local History (本地歷史記錄)** 功能,自動記錄工作區檔案的每次儲存狀態,**無需版本控制即可輕鬆復原**。
功能特色
- **自動啟用**:預設開啟,無需配置
- **檔案級復原**:刪除的檔案可完整恢復
- **內容級比較**:修改過的檔案可逐行對比歷史版本
- **時間範圍**:預設保留 7 天 (可調整),每次儲存產生一個歷史節點
- **類似 CVS/Git diff 體驗**:視覺化差異對比
操作場景一:恢復被刪除的檔案
步驟演示
- 專案總管中,專案節點右鍵 → **Restore from Local History...** (從本地歷史記錄恢復)
- 彈出對話框顯示可恢復的已刪除檔案列表 (含刪除時間)
- 勾選需恢復的檔案 (如 `T1.java`、`T4.properties`)
- 點擊 **Restore** 完成恢復




操作場景二:回溯檔案修改歷史 (類 Git log/diff)
步驟演示
- 編輯器中開啟目標檔案 (如 `T1.java`)
- 編輯器空白處右鍵 → **Compare With** → **Local History...**
- 或:專案總管檔案右鍵 → **Compare With** → **Local History...**
- 左側列表顯示所有歷史版本 (含時間戳)
- 選擇任一版本,右側即時顯示雙欄差異對比 (刪除紅色、新增綠色、修改藍色)
- 可將舊版本內容複製回當前編輯器,或點擊 **Replace With** 直接覆蓋


進階配置:調整歷史保留策略
修改保留天數與容量上限
- **Window** → **Preferences**
- **General** → **Workspace** → **Local History**
- 調整參數:
- **Days to keep files** (預設 7 天,建議 30 天)
- **Maximum entries per file** (預設 50,建議 100-200)
- **Maximum file size (KB)** (預設 1024 KB,大檔案可調大)
- 點擊 **Apply and Close**
清理特定專案/檔案歷史 (釋放空間)
- 專案/檔案右鍵 → **Team** → **Clear Local History**
- 確認刪除該資源的所有歷史記錄
Local History vs 版本控制 (Git/SVN) 差異對照
| 特性 | Eclipse Local History | Git / SVN |
| 儲存位置 | 工作區 `.metadata/.plugins/org.eclipse.core.resources/.history` | 倉庫 (本地 `.git` / 遠端伺服器) |
| 團隊協作 | ❌ 僅本機 | ✅ 多人同步、分支合併 |
| 提交語義 | ❌ 自動 (每次 Save) | ✅ 手動 (有意義的 Commit 訊息) |
| 離線可用 | ✅ 完全離線 | ✅ 本地倉庫離線可用 |
| 二進位檔支援 | ✅ 完整備份 | ⚠️ 需 LFS 處理大檔 |
| 取代關係 | **補充工具,不可取代** | **核心版本控制** |
最佳實踐建議
- 習慣頻繁 Save (Ctrl+S): 每次 Save 產生一個歷史節點,越頻繁越能精準回溯
- 配合 Git 使用: Git 負責版本管理與團隊協作,Local History 處理「未 Commit 前的誤刪/誤改」
- 調大保留參數: 磁碟空間允許下,設定 30 天 / 200 entries,覆蓋更長時間窗口
- 大型重構前手動備份: 除 Local History 外,關鍵檔案可複製備份至專案外目錄
- 定期清理: 專案關閉/刪除後,執行 **Clear Local History** 釋放工作區空間
常見問題 FAQ
- Q: 刪除專案後,Local History 還在嗎?
- A: 專案刪除時若勾選 "Delete project contents on disk",檔案連同歷史一起刪除。若僅從工作區移除 (不勾選),歷史保留在工作區中,重新 Import 專案可見。
- Q: 切換工作區後,舊工作區的 Local History 能取用嗎?
- A: 不能。Local History 綁定工作區。需切回原工作區或複製 `.metadata/.plugins/org.eclipse.core.resources/.history` 目錄。
- Q: 非 Eclipse 編輯器修改的檔案 (如 VS Code、vim) 有歷史嗎?
- A: 有。只要檔案在工作區中,Eclipse 偵測到檔案變更 (重新整理/刷新專案後) 會建立歷史節點。
- Q: Local History 佔用空間大嗎?
- A: 視專案大小與保留設定。一般中型專案幾十 MB 到幾百 MB。可透過 Preferences 限制最大檔案大小與條目數。
結語
Eclipse Local History 是開發者的「時光機」,在 **誤刪檔案、誤改代碼、未 Commit 想回溯** 等場景下極具價值。配合合理的保留策略與 Git 版本控制,構建雙重保障,讓開發更安心。記住:**頻繁 Save,關鍵時刻右鍵 → Local History!**