git | 版本回退

版本回退

如上,我們已經(jīng)學(xué)會了修改文件,現(xiàn)在我繼續(xù)對readme.txt文件進(jìn)行修改,再增加一行
內(nèi)容為2333.繼續(xù)執(zhí)行命令如下:

往readme.txt里面添加一行2333

再add,然后commit給git

那么現(xiàn)在等于一共對readme.txt做過三次修改了。在實(shí)際工作中,我們腦子里怎么可能記得一個幾千行的文件每次都改了什么內(nèi)容,不然要版本控制系統(tǒng)干什么。版本控制系統(tǒng)肯定有某個命令可以告訴我們歷史記錄,在Git中,我們用git log命令查看(這里可以看出,提交注釋很重要啊,不然都不知道之前提交了什么):

用git log查看

git log命令顯示從最近到最遠(yuǎn)的顯示日志,我們可以看到最近三次提交,最近的一次是,增加內(nèi)容為2333.上一次是重寫了兩行關(guān)于git的內(nèi)容,刪除了hello word,第一次默認(rèn)是hello word 。如果嫌上面顯示的信息太多的話,我們可以使用命令 git log –pretty=oneline ,如下:

簡易版顯示結(jié)果

【那個刺眼的HEAD→master先不用管,可以自行百度HEAD的指向問題】
現(xiàn)在我想使用版本回退操作,我想把當(dāng)前的版本回退到上一個版本,要使用什么命令呢?可以使用如下2種命令:
第一種是:git reset –hard HEAD^那么如果要回退到上上個版本只需把HEAD^改成 HEAD^^ 以此類推。那如果要回退到前100個版本的話,使用上面的方法肯定不方便,我們可以使用下面的簡便命令操作:
第二種:git reset –hard HEAD~100即可。未回退之前的readme.txt內(nèi)容如下:

未回退前,文本內(nèi)容是這樣的

如果想回退到上一個版本的命令如下操作:

回退到上一個版本啦

再來查看下 readme.txt內(nèi)容如下:通過命令cat readme.txt查看:

已經(jīng)回退到上一個版本了

可以看到,內(nèi)容已經(jīng)回退到上一個版本了。我們可以繼續(xù)使用git log來查看下歷史記錄信息,如下:

只存在兩個版本的信息了

我們看到 增加333333 內(nèi)容我們沒有看到了,但是現(xiàn)在我想回退到最新的版本,如:有2333的內(nèi)容要如何恢復(fù)呢?我們可以通過版本號回退,只要上面的命令行窗口還沒有被關(guān)掉,你就可以順著往上找啊找啊,找到那個2333的commit idd9d...2e,使用命令git reset –hard 版本號,于是就可以指定回到未來的某個版本(版本號沒必要寫全,前幾位就可以了,Git會自動去找。當(dāng)然也不能只寫前一兩位,因?yàn)镚it可能會找到多個版本號,就無法確定是哪一個了)。
但是現(xiàn)在的問題假如我已經(jīng)關(guān)掉過一次命令行或者2333內(nèi)容的版本號我并不知道呢?要如何知道增加2333內(nèi)容的版本號呢?可以通過如下命令即可獲取到版本號:git reflog 如下:

查看之前的版本號

通過上面的顯示我們可以知道,增加內(nèi)容3333的版本號是 d9dddc8.我們現(xiàn)在可以命令
git reset –hard d9dddc8來恢復(fù)了。演示如下:

2333又回來啦

【解釋一下HEAD是啥】
Git的版本回退速度非常快,因?yàn)镚it在內(nèi)部有個指向當(dāng)前版本的HEAD指針,當(dāng)你回退版本的時候,Git僅僅是把HEAD從指向append GPL(這個圖是我用的別人的圖,按照上文的實(shí)際操作,這里是指向2333):


git-head

改為指向add distributed(也就是第二個版本,文件重寫了兩行關(guān)于git的內(nèi)容,刪除了hello word):


git-head-move

然后順便把工作區(qū)的文件更新了。所以你讓HEAD指向哪個版本號,你就把當(dāng)前版本定位在哪。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容