一、前言
上一章节,我们已经学会了如何创建版本库,如何提交文件到版本库,如何查看最近提交文件的记录,那么如果现在我们想回退版本怎么操作呢?
二、步骤
①现在继续对readme.txt文件进行修改,再增加一行,内容为33333333。继续执行命令如下:

②对readme.txt文件做了三次修改,现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 如下所示:

git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是,增加内容为33333333.上一次是添加内容22222222,第一次默认是 11111111.如果嫌上面显示的信息太多的话,我们可以使用命令 git log –pretty=oneline 演示如下:

③现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令,第一种是:git reset –hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset –hard HEAD~100 即可。未回退之前的readme.txt内容如下:

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

再来查看下 readme.txt内容如下:通过命令cat readme.txt查看

可以看到,内容已经回退到上一个版本了。我们可以继续使用git log 来查看下历史记录信息,如下:

我们看到 增加33333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有33333333的内容要如何恢复呢?我们可以通过版本号回退,使用命令方法如下:git reset –hard 版本号
但是现在的问题假如我已经关掉过一次命令行或者3333333内容的版本号我并不知道呢?要如何知道增加33333333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog 演示如下:

通过上面的显示我们可以知道,增加内容33333333的版本号是f676eae.我们可以使用命令git reset –hard f676eae来恢复了。演示如下:

可以看到现在已经恢复到最新的版本了。
至此,我们关于Git教程之如何版本回退介绍完毕。
原文地址:http://www.marsitman.com/git/git-back-respository.html (转)