美文网首页
Git使用教程-5.版本回退

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

作者: Justin小贾同学 | 来源:发表于2021-09-17 07:00 被阅读0次

    历史记录

    1. 现在,我们继续修改README.md文件的内容,然后提交到仓库。
    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游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。版本回退 - 廖雪峰的官方网站 (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(版本号),每次提交都会产生一个版本号。

    1.png

    回滚快照

    注:快照即提交(commit)的版本,每个版本我们称之为一个快照。

    从前面的log中我们可以看到HEAD指向了最后一次commit,想要回滚就是把HEAD指向某个快照。首先,我们得知道要回到哪个一个快照的版本号。在Git中,用HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。
    现在,我们想要回到上一个版本,就使用git reset命令

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

    Git不仅可以回到过去,而且还可以回到未来。现在我们的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

    相关文章

      网友评论

          本文标题:Git使用教程-5.版本回退

          本文链接:https://www.haomeiwen.com/subject/dnmdgltx.html