go local history本地歷史恢復(fù)代碼神器
local history
今天來介紹一個(gè)goland很逆天的功能:local history,也就是本地歷史。
這個(gè)功能不常被人提及,但是他就像是山中的隱士一樣,不出手則已,一出手就是王炸。
這個(gè)功能是用來記錄項(xiàng)目里面的歷史改變的,這個(gè)改變包含一般意義的改變,比如說你對(duì)某個(gè)文件做了一些改動(dòng),也包含你之前刪除的文件。
既然是本地歷史,那么我們就可以回到歷史的某個(gè)時(shí)間點(diǎn)的狀態(tài)。人們常說人生無法時(shí)光倒流,也沒有后悔藥去修正自己犯過的錯(cuò)誤。但是對(duì)于代碼就不一樣了。我們有機(jī)會(huì)讓代碼回過去的某個(gè)狀態(tài)。
聽起來,本地歷史很像git的回退功能。但是他們起作用的時(shí)間點(diǎn)是不一樣的,git是對(duì)已經(jīng)提交的代碼進(jìn)行回退到某個(gè)過去的版本;本地歷史則是在你編輯代碼的全過程進(jìn)行項(xiàng)目的狀態(tài)記錄,從這個(gè)意義上講,他比git更強(qiáng)大。
實(shí)操本地歷史的使用
假定這么一個(gè)場(chǎng)景,前幾天你已經(jīng)提交了一次代碼,然后開始對(duì)一個(gè)文件進(jìn)行了一些更改(比如有25次的更改),但是在你提交代碼之前,你突然意識(shí)到 這個(gè)文件有一個(gè)重要的方法目前是沒有(這個(gè)方法在第三次更改的時(shí)候加的,后面又刪了),你需要讓這個(gè)文件重新具有這個(gè)方法的代碼。
你想過使用撤銷(快捷鍵 ctrl+z)來試圖回退讓這個(gè)方法重新具有,但是一想到要按很多次ctrl+z,也害怕多次的ctrl+z會(huì)出問題。
此時(shí),你就可以用到本地歷史了。
第一個(gè):回退單個(gè)文件
對(duì)這個(gè)文件右擊,然后選擇Local history,然后選擇Show history,然后回彈出一個(gè)窗口,窗口左邊就是之前的這個(gè)文件出現(xiàn)的版本的列表,每個(gè)版本默認(rèn)帶了一個(gè)自己的時(shí)間戳。窗口右邊是一個(gè)差異的查看器,選擇一個(gè)歷史版本,然后和當(dāng)前的版本進(jìn)行差異對(duì)比,以此來確定自己需要哪個(gè)歷史版本的文件。
當(dāng)選定了一個(gè)歷史版本,就可以點(diǎn)擊向左的箭頭符號(hào),實(shí)現(xiàn)回退。
前面選中某個(gè)版本,然后回退,那么代碼就是這個(gè)版本的代碼;如果你只想要這個(gè)歷史版本的某一部分代碼,那么可以點(diǎn)擊>>去把想要的代碼移到當(dāng)前的版本里。
第二個(gè):回退多個(gè)文件
先選中多個(gè)文件,然后向前面右擊選擇Local hisotry|show history。
第三個(gè):回退已經(jīng)刪除的文件
如果你之前不小心刪除了某個(gè)文件,也可以同上一樣操作,刪除的文件在歷史版本里面標(biāo)記了Deleting。
如下動(dòng)圖,來恢復(fù)已經(jīng)刪除的server.go
前面提到每個(gè)文件的歷史版本是通過時(shí)間戳來標(biāo)識(shí)的,那么如果在操作多個(gè)文件,或者對(duì)同一個(gè)文件前面的更改次數(shù)太多了,可能就不那么好識(shí)別具體的版本了。此時(shí)可以給當(dāng)前文件的版本加一個(gè)Label來區(qū)別。
還是右擊文件,選擇Local history,然后選擇put label,然后給一個(gè)當(dāng)前更改的標(biāo)識(shí)(最好是一個(gè)有業(yè)務(wù)含義的名字)。
為了減少鼠標(biāo)的點(diǎn)擊,可以先按2次 shift,然后輸入local ,選擇local history來快速調(diào)出本地歷史
本地歷史很強(qiáng)大,可以幫我們很快恢復(fù)一些代碼。但是他也是有使用邊界的。本地歷史默認(rèn)只能保存最近5天有修改的文件。這個(gè)值也是可以修改的,在Setting里面的IDE下面找到Duration of storing changes in Local History ,然后你可以給個(gè)30天(應(yīng)該夠了)。
以上就是go local history本地歷史恢復(fù)代碼神器的詳細(xì)內(nèi)容,更多關(guān)于go local history恢復(fù)代碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
go語言用八百行代碼實(shí)現(xiàn)一個(gè)JSON解析器
這篇文章主要為大家介紹了go語言用八百行代碼實(shí)現(xiàn)一個(gè)JSON解析器實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07golang函數(shù)的返回值實(shí)現(xiàn)
本文主要介紹了golang函數(shù)的返回值實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Go語言常見錯(cuò)誤之將接口定義在實(shí)現(xiàn)方
在Go中,接口起到一個(gè)十分關(guān)鍵的角色,它們提供了一種方式來定義對(duì)象的行為,而不需要知道對(duì)象的具體實(shí)現(xiàn),一個(gè)常見的錯(cuò)誤是在實(shí)現(xiàn)方而不是使用方定義接口,本文將詳細(xì)探討為何這樣做是一個(gè)錯(cuò)誤,以及如何避免它2024-01-01Go語言實(shí)現(xiàn)基于websocket瀏覽器通知功能
這篇文章主要介紹了Go語言實(shí)現(xiàn)基于websocket瀏覽器通知功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07詳解Go中如何進(jìn)行進(jìn)行內(nèi)存優(yōu)化和垃圾收集器管理
這篇文章主要為大家詳細(xì)介紹了Go中如何進(jìn)行進(jìn)行內(nèi)存優(yōu)化和垃圾收集器管理,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下2023-11-11