事情是这样的...在某次rebase失败后,没注意到错误信息,结果在下次重新commit后rebase就成功干掉了本次需要commit的内容...
搜索了下记录,发现可以通过如下两种方式找回:
nemo@Cynthia:~/git_work01/lambda$ git reflog
a07fbb0 HEAD@{0}: rebase: aborting
2178e2a HEAD@{1}: reset: moving to HEAD@{2}
8f95ccd HEAD@{2}: rebase: checkout origin/dev_s17_1
a07fbb0 HEAD@{3}: rebase: aborting
..........
这时候可以看到所有的操作记录,包括之前commit后文件消失的记录。
找到那次rebase的操作,只要新建个分支在里面找回前一行commit的代码就可以了。
git checkout -b my_recovery 0800 ada2680266b192a0ebf8d4a43ca8ca4812aadc78
当然,还有一个方法:
git reflog
# Suppose the old commit was HEAD@{5} in the ref log
git reset --hard HEAD@{5}