美文网首页Git
Git----版本回退

Git----版本回退

作者: 撕裂者_进阶 | 来源:发表于2018-02-09 10:47 被阅读6次

    版本回退

    现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:

    this two

    然后尝试提交:

    $ git add readme.txt

    $ git commit -m"这是注释"

    像这样,你不断对文件进行修改,然后不断提交修改到版本库里,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

    现在,我们回顾一下readme.txt文件一共有几个版本被提交到Git仓库里了:

    版本1:this one 

    Gitisa version control system.Gitisfree software.

    版本2:this two

    Gitisa distributed version control system.Gitisfree software.

    版本3:this three

    Gitisa distributed version control system.Gitisfree software distributed under the GPL.

    当然了,在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

    git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

    $ git log --pretty=oneline

    需要友情提示的是,你看到的一大串类似3628164...882e1e0的是commit id(版本号)

    现在,我们要把当前版本“this two”回退到上一个版本“this one”,就可以使用git reset命令:

    $ git reset--hard HEAD^

    --hard参数

    看看readme.txt的内容是不是版本thi one

    $ cat readme.txt

    回退到最新版本:

    $ git reset--hard3628164  (3628164是版本号,没必要写全)

    $ cat readme.txtGitisa distributed version control system.Gitisfree software distributed under the GPL.

    小结

    现在总结一下:

    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    相关文章

      网友评论

        本文标题:Git----版本回退

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