本人看的教程是廖雪峰的《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。