可前進可后退,IDEA 中這個功能神了!
當我寫這篇文章的時候,想起來 N 年前一件往事,我一不小心刪除了一個剛剛寫好的頁面,又氣又惱,后來趁著還有印象默默的花了半個多小時又重寫了一遍,那個時候要是知道 IDEA 中這個功能該有多好呀!
今天跟小伙伴們介紹一下 IDEA 中的 Local History 功能。
1. Local History
其實 IDEA 中這些小功能可能大家也都知道,但是如果沒留意可能就辜負了開發 IDEA 的同行們的一篇苦心了。
IDEA 中的 Local History 功能可以幫助我們不斷跟蹤對項目文件所作的更改,并且這個跟蹤不受版本控制的影響,換句話說,無論你用不用 Git、Svn 等工具,IDEA 中的 Local History 功能都是可用的。
IDEA 中的 Local History 功能不需要我們手動 commit,當我們 coding、testing 或者 deploying 項目的時候,它會自動記錄我們項目文件的狀態。
通過 IDEA 自帶的 Local History 功能,我們恢復已經刪除的文件,恢復某個文件的某一次更改或者將文件回滾到歷史中的任意時刻,最為關鍵的是這一切不依賴版本控制工具。
不過需要注意的是,Local History 功能雖然好用,但是不能用來代替版本控制工具,這主要有如下一些原因:
- Local History 具有保留期,到期之后,版本數據會丟失。
- Local History 有最大大小,因此無法保證版本數據會持續存在。
- 安裝新版本的 IDEA 時會自動清除本地歷史記錄。
- 用戶手動點擊了 File->Invalidate Caches/Restart,也會導致版本數據丟失。
2. 使用
舉幾個例子。
2.1 恢復刪除的文件
假設我有一個項目,叫做 druid_monitor,這個項目沒有使用版本控制工具 Git 或者 Svn。
現在我不小心刪除了該項目中的一個名為 RemoveAdFilter 的類,刪完之后,我發現刪除錯誤,想要恢復,那怎么辦呢?
選中當前工程,右鍵單擊,依次選擇 Local History->Show History,如下圖:
在打開的頁面中,我們可以看到這個項目中的文件變化:
第一條記錄就是我們剛剛刪除的記錄,現在我想恢復剛剛刪除的文件,那么我們選中第一條日志,右鍵單擊,選擇 Revert,如下圖:
數據恢復之后,可以看到又多了一條日志記錄:
2.2 恢復文件的變化
如果你有某一個類,想要回到歷史中的某一個版本,那么直接選擇這個類,然后進行版本回退即可。
看中了哪個歷史版本,選中然后點擊 Revert 即可。中間那個就是歷史上的狀態,右邊則是這個類當前的狀態:
2.3 打標簽
如果某一時間代碼的狀態比較重要,可以打個標簽標記一下,如下:
選擇 Put Label... 設置一個標簽,將來在 Show History 中就可以看到這個標簽了,這個有點像 Git 中的 Tag 功能,但是不完全一樣。
3. 修改有效期
默認文件的 Local History 保存時間是 5 個 working day,意思就是在五個自然日中修改該文件。例如周一改了文件,周二沒動,周三改了文件,那么就算兩天。
不過這個日期可以自己修改,修改方式如下:
Ctrl+Shift+A,喚出 Action。
輸入 Registry,然后按回車。
找到 localHistory.daysToKeep 然后進行修改,如下:
將該值置為 0 就關閉了 Local History 功能。
4. 版本內容保存位置
Local History 記錄的內容保存在本地,不同系統保存位置分別如下:
Windows:
%LOCALAPPDATA%\JetBrains\<product><version>
例如:
C:\Users\JohnS\AppData\Local\JetBrains\IntelliJIdea2021.3
Mac:
~/Library/Caches/JetBrains/<product><version>
例如:
~/Library/Caches/JetBrains/IntelliJIdea2021.3
Linux:
~/.cache/JetBrains/<product><version>
例如:
~/.cache/JetBrains/IntelliJIdea2021.3