Git x SVN rebase事故

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.测试

原文地址:https://www.cnblogs.com/ixenos/p/10244275.html