本人看的教程是廖雪峰的《git》
1. 版本回退
使用了git log指令查詢出結果中各個送出的版本,如果想要回退其中一個版本隻需要首先,Git必須知道目前版本是哪個版本,在Git中,用HEAD表示目前版本,也就是最新的送出3628164…882e1e0(注意我的送出ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,是以寫成HEAD~100。
回退版本之後,檢視
$ git log
commit ecaa5fb6f06df0bf2819049e92d747777839cba (HEAD -> master)
Author: Toothsmile <@qq.com>
Date: Mon Apr :: +
this is my firt modify!
commit ea46fda6e94694d235be44639b97c56618675d63
Author: Toothsmile <@qq.com>
Date: Mon Apr :: +
this is my first gitTest
那麼如何回到之前的版本呢,隻需要我們 剛查出去的commitID,
$ git reset --hard b61b4
HEAD is now at b61b474 this is my second modfiy!
yes,剛才的版本又回來了,這就像是個按着Ctrl+Z和Y。
Git的版本回退速度非常快,因為Git在内部有個指向目前版本的HEAD指針,當你回退版本的時候,Git僅僅是把HEAD從指向second modify
如果沒有記錄,比如關機之後想要前進到之前的版本該怎麼辦呢。
Git提供了一個指令git reflog用來記錄你的每一次指令。
b61b474 (HEAD -> master) HEAD@{0}: reset: moving to b61b4
0ecaa5f HEAD@{1}: reset: moving to 0ecaa5f
ea46fda HEAD@{2}: reset: moving to HEAD^
0ecaa5f HEAD@{3}: reset: moving to HEAD^
b61b474 (HEAD -> master) HEAD@{4}: commit: this is my second modfiy!
0ecaa5f HEAD@{5}: commit: this is my firt modify!
ea46fda HEAD@{6}: commit (initial): this is my first gitTest
在上面我們可惜清晰的看見我們的git reset 操作還有之前所有的commit ID,也就意味着我們可以回退到其中任何的版本。
總結:
- git log可以檢視之前commitID,加上參數–pretty=oneline可以清晰顯示
- git reset –hard com_id,可以到相應的comid版本
- git reflog,可以檢視所有的commitID。