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)文章
Golang爬蟲及正則表達(dá)式的實(shí)現(xiàn)示例
本文主要介紹了Golang爬蟲及正則表達(dá)式的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Golang實(shí)現(xiàn)簡(jiǎn)易的命令行功能
這篇文章主要為大家詳細(xì)介紹了如何通過Golang實(shí)現(xiàn)一個(gè)簡(jiǎn)易的命令行功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下2023-02-02
深入了解Go的HttpClient超時(shí)機(jī)制
在寫?Go?的過程中經(jīng)常對(duì)比這Java和GO語(yǔ)言的特性,踩了不少坑,也發(fā)現(xiàn)了不少有意思的地方,今天就來聊聊?Go?自帶的?HttpClient?的超時(shí)機(jī)制2022-11-11
GO語(yǔ)言的控制語(yǔ)句詳解包括GO語(yǔ)言的指針語(yǔ)法
這篇文章主要介紹了GO語(yǔ)言的控制語(yǔ)句詳解包括GO語(yǔ)言的指針語(yǔ)法,GO語(yǔ)言switch結(jié)構(gòu),GO語(yǔ)言for的4種結(jié)構(gòu)需要的朋友可以參考下2022-12-12
使用go net實(shí)現(xiàn)簡(jiǎn)單的redis通信協(xié)議
本文主要介紹了go net實(shí)現(xiàn)簡(jiǎn)單的redis通信協(xié)議,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
GoFrame錯(cuò)誤處理常用方法及錯(cuò)誤碼使用示例
這篇文章主要為大家介紹了GoFrame錯(cuò)誤處理常用方法及錯(cuò)誤碼使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Golang Gin框架實(shí)現(xiàn)多種數(shù)據(jù)格式返回結(jié)果詳解
這篇文章主要介紹了Golang Gin框架實(shí)現(xiàn)多種數(shù)據(jù)格式返回結(jié)果,我們都知道,一個(gè)完整的請(qǐng)求包含請(qǐng)求和處理請(qǐng)求以及結(jié)果返回三個(gè)步驟,在服務(wù)器端對(duì)請(qǐng)求處理完成以后,會(huì)將結(jié)果返回給客戶端,在gin框架中,支持返回多種請(qǐng)求數(shù)據(jù)格式,下面我們一起來看看2023-05-05

