Git x SVN rebase事故
@author ixenos 2019-01-09 14:21:21
前言:
昨天在Git x SVN 中进行git svn dcommit的时候,提示需要再进行11次git rebase。
而我当时的分支情况是这样的:
在合并之前,master先git svn rebase获取到远程分支的最新修改,然后,切换到feature-A分支;
feature-A分支merge master分支,解决冲突后合并;
然后再切回master分支,将feature-A分支合并到master中;
最后执行git svn dcommit提交。
以上的工作流程在纯git环境中很常见,但是就在我dcommit后,提示我需要再进行11次git rebase,当时我也没多想,惯性地认为git rebase已在上一次merge中完成,就一路git rebase --skip下去。。。
然后测试部分也遗漏了(因为feature-A之前已经经过功能性测试)
最后在临上线前发现功能版本不对,查看SVN记录,发现commit被覆盖了,而此时只存在本地的feature-A已被git branch -D删除。
解决方案:
1.git reflog 查找最近一条feature-A的记录,获取其commit id
2.git branch <branch_name> <hash_val> 根据commit id恢复对应分支
3.重新进行合并操作
4.11次rebase仔细进行
5.测试