Git使用教程-5.版本回退

歷史記錄

  1. 現(xiàn)在,我們繼續(xù)修改README.md文件的內(nèi)容,然后提交到倉庫。
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ cat README.md
Hello Git!
Git is free software.
Git is a distributed version control system.

提交到倉庫

23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git add README.md

23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git commit -m "distributed"
[master cf53e60] distributed
 1 file changed, 1 insertion(+)

這樣,你不斷對文件進行修改,然后不斷提交修改到版本庫里,就好比玩RPG游戲時,每通過一關就會自動把游戲狀態(tài)存盤,如果某一關沒過去,你還可以選擇讀取前一關的狀態(tài)。有些時候,在打Boss之前,你會手動存盤,以便萬一打Boss失敗了,可以從最近的地方重新開始。Git也是一樣,每當你覺得文件修改到一定程度的時候,就可以“保存一個快照”,這個快照在Git中被稱為commit。一旦你把文件改亂了,或者誤刪了文件,還可以從最近的一個commit恢復,然后繼續(xù)工作,而不是把幾個月的工作成果全部丟失。版本回退 - 廖雪峰的官方網(wǎng)站 (liaoxuefeng.com)

  1. 實際工作中我們會提交很多次,那么我們怎么看到這些歷史記錄呢?在Git中,我們用git log命令查看:
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git log
commit cf53e60a3104d7f187c54759b0238c83c2522d48 (HEAD -> master)
Author: siebe <siebe@qq.com>
Date:   Thu Sep 16 11:32:12 2021 +0800

    distributed

commit 8249b3d01d2385cb2b201f2d57260b84d65eafde
Author: siebe <siebe@qq.com>
Date:   Thu Sep 16 11:30:36 2021 +0800

    add tow files

commit 5754150a2f4e88a2309dda8c73f0a42ef192ad7d
Author: siebe <siebe@qq.com>
Date:   Thu Sep 16 11:26:43 2021 +0800

    free software

commit 42d49c9aad91151f62a0391b5c3896e8162fea11
Author: siebe <siebe@qq.com>
Date:   Wed Sep 15 13:43:51 2021 +0800

    add a readme file

我們看到的一大串cf53e60a...就是commit id(版本號),每次提交都會產(chǎn)生一個版本號。

1.png

回滾快照

注:快照即提交(commit)的版本,每個版本我們稱之為一個快照。

從前面的log中我們可以看到HEAD指向了最后一次commit,想要回滾就是把HEAD指向某個快照。首先,我們得知道要回到哪個一個快照的版本號。在Git中,用HEAD表示當前版本,上一個版本就是HEAD,上上一個版本就是HEAD,當然往上100個版本寫100個比較容易數(shù)不過來,所以寫成HEAD~100。
現(xiàn)在,我們想要回到上一個版本,就使用git reset命令

23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git reset --hard HEAD^
HEAD is now at 8249b3d add tow files
3.png

Git不僅可以回到過去,而且還可以回到未來?,F(xiàn)在我們的HEAD指向了add tow files版本,萬一想要回到distributed該怎么辦呢?

23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git reset --hard cf53e60
HEAD is now at cf53e60 distributed
2.png

這里就有一個問題,要是我們不知未來版本的版本號怎么辦呢?可以使用git reflog命令,看到每次reset的記錄。

4.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 版本回退 現(xiàn)在,你已經(jīng)學會了修改文件,然后把修改提交到Git版本庫,現(xiàn)在,再練習一次,修改readme.txt文件...
    無關風月oo閱讀 319評論 0 0
  • 轉(zhuǎn)自: http://www.liaoxuefeng.com/wiki/0013739516305929606dd...
    CoderJohnhao閱讀 10,563評論 1 3
  • 版本回退 ??現(xiàn)在,你已經(jīng)學會了修改文件,然后把修改提交到Git版本庫,現(xiàn)在,再練習一次,修改readme.txt...
    yeren108閱讀 448評論 0 0
  • 通過上一篇文章Git的添加、提交與移除我們已經(jīng)學會了如何創(chuàng)建git倉庫,并使用Git管理文件,我們每次更新文件,提...
    SnowZhang閱讀 749評論 0 2
  • 版本回退 現(xiàn)在,你已經(jīng)學會了修改文件,然后把修改提交到Git版本庫,現(xiàn)在,再練習一次,修改readme.txt文件...
    AFinalStone閱讀 394評論 0 0

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