假设你不小心git reset --hard HEAD^
然后这个commit又没有在别的git仓库中,怎么办?是不是这次改动就丢了呢?
当然不是,git为我们每次都历史都保留了reference log
例如以下:
$ git commit -A -m "hongchangfirst commit"
你如今看git的历史记录,你能够看到两次提交:
$ git log
* d1f3fg5 (HEAD, master) hongchangfirst commit
如今让我们来重置回第一次提交的状态:
$ git reset --hard HEAD^
这次的提交没有了,可是我们还是有办法恢复的,由于有个reflog会记录全部HEAD的历史。例如以下:
$ git reflog
a6h8jha HEAD@{0}: reset:
d1f3fg5 HEAD@{1}: commit:
hongchangfirst commit
所以,我们要找回丢失的commit,仅仅需这样:
$ git reset --hard d1f3fg5
再来看一下 git 记录:
$ git log
* d1f3fg5 (HEAD, master)hongchangfirst commit
好了,就这样。
原文:http://blog.csdn.net/hongchangfirst/article/details/30458313
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst