转载请出自出处:http://eksliang.iteye.com/blog/2249441
一.查看git提交的历史信息
git log命令显示从最近到最远的提交日志
如果嫌输出信息太多,可以试试加上--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