回退版本
当代码仓库中有了提交记录后,就可以通过git log指令查看历史提交记录,如下所示。
- commit 948cd7c42785c62c3e7793991580fe7bb4645b08
- Author: 徐宜生 <xuyisheng@hujiang.com>
- Date: Sat Dec 12 21:02:06 2015 +0800
- update readme
- commit 0fb569c9fda8b01d3f480945bc95278c89428f0d
- Author: 徐宜生 <xuyisheng@hujiang.com>
- Date: Sat Dec 12 20:32:12 2015 +0800
- modify README
- commit ce8e133421f53f99f38bf7341eb985da8c168c8f
- Author: 徐宜生 <xuyisheng@hujiang.com>
- Date: Sat Dec 12 18:15:37 2015 +0800
- add README
- commit 6c8ebf02a1327be98634b34d755b87a5d81885fb
- Author: 徐宜生 <xuyisheng@hujiang.com>
- Date: Sat Dec 12 18:11:25 2015 +0800
- init commit
- (END)
这些在前面的小节中已经有了讲解。这里要处理的问题是,如何回退到指定的某个历史提交,也就是开发中经常要遇到的版本回退问题。
在Git中,用HEAD表示当前版本,那么上一个版本就是HEAD^,上上一个版本就是HEAD^^,如果往上100个版本就不要这样写了,写成HEAD~100即可。
知道了如何用HEAD表示版本历史,那么要回退到指定的版本就很容易了,例如要回退到上个版本,代码如下所示。
- ➜ GradleTest git:(master) git reset --hard HEAD^
- HEAD is now at 0fb569c modify README
可以发现,HEAD也就是当前版本,已经移动到了另一个提交,这时候如果再查看git log,如下所示。
- commit 0fb569c9fda8b01d3f480945bc95278c89428f0d
- Author: 徐宜生 <xuyisheng@hujiang.com>
- Date: Sat Dec 12 20:32:12 2015 +0800
- modify README
- commit ce8e133421f53f99f38bf7341eb985da8c168c8f
- Author: 徐宜生 <xuyisheng@hujiang.com>
- Date: Sat Dec 12 18:15:37 2015 +0800
- add README
- commit 6c8ebf02a1327be98634b34d755b87a5d81885fb
- Author: 徐宜生 <xuyisheng@hujiang.com>
- Date: Sat Dec 12 18:11:25 2015 +0800
- init commit
- (END)
由此可以证明,当前版本已经回退。所以要回退到哪个版本,只要通过HEAD找到对应的版本就可以了。同时你可以写commit id,也可以以HEAD^、HEAD^^来表示对应的版本。
