git 版本回退

一.查看git提交的历史信息

git log命令显示从最近到最远的提交日志

git 版本回退
 

如果嫌输出信息太多,可以试试加上--pretty=oneline参数,代码如下:

$ git log --pretty=oneline
c7b8b201284777366e2cf21d7f104eac123211a8 update add spark
038491dda6a7982ae02bbb1c85908c4eabf0f639 update hadoop
557dd6f51ebaf4d7ab2b50e10411701b749d1c8d add hadoop

二.版本回退(回退到过去)

  • 第一种:根据head^来确定回退版本

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

参考实例:回退到上一个版本

$ git reset --hard HEAD^
HEAD is now at 038491d update hadoop
  • 第二种:根据版本ID来确定回退版本
#查看提交的历史版本信息  
$ git log --pretty=oneline  
c7b8b201284777366e2cf21d7f104eac123211a8 update add spark  
038491dda6a7982ae02bbb1c85908c4eabf0f639 update hadoop  
557dd6f51ebaf4d7ab2b50e10411701b749d1c8d add hadoop  

#回退到038491dda6a7982ae02bbb1c85908c4eabf0f639 update hadoop这个版本</span>  
$ git reset --hard 038491dda6a7982ae02bbb1c85908c4eabf0f639  
HEAD is now at 038491d update hadoop  
  
#再次查看历史记录,发现前面的版本没有了!  
$ git log --pretty=oneline  
038491dda6a7982ae02bbb1c85908c4eabf0f639 update hadoop  
557dd6f51ebaf4d7ab2b50e10411701b749d1c8d add hadoop

三.版本回退(回退到未来)

从上个例子中,可以看出来,当使用git reset 回退到过去版本时,那么git log 会看不到当前版本的后面提交信息,怎么办!

答:使用git reflog 可以查看执行命令的历史信息

参考实例:回退到未来

#查看执行的历史命令,前面的那个编号,就是可以选择的版本号
$ git reflog
038491d HEAD@{0}: reset: moving to 038491dda6a7982ae02bbb1c85908c4eabf0f639
c7b8b20 HEAD@{1}: reset: moving to c7b8b20
557dd6f HEAD@{2}: reset: moving to 557dd6f51ebaf4d7ab2b50e10411701b749d1c8d
038491d HEAD@{3}: reset: moving to HEAD^
c7b8b20 HEAD@{4}: commit: update add spark
038491d HEAD@{5}: commit: update hadoop
557dd6f HEAD@{6}: commit (initial): add hadoop

#回退到未来
$ git reset --hard c7b8b20
HEAD is now at c7b8b20 update add spark

#再次查看提交的历史信息果然又有了3个
$ git log --pretty=oneline
c7b8b201284777366e2cf21d7f104eac123211a8 update add spark
038491dda6a7982ae02bbb1c85908c4eabf0f639 update hadoop
557dd6f51ebaf4d7ab2b50e10411701b749d1c8d add hadoop

相关推荐