轉載請出自出處: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