Git----版本回退

版本回退

现在,你已经学会了修改文件,然后把修改提交到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----版本回退)