请教各位前辈Github上Pull Request如果被Revert后,代码怎么还原?
场景如下:
现在有2个分支,一个为pre_release预发布分支,一个为feature_order特性分支
步骤如下:
1、现在我在feature_order特性分支上进行了修改,然后在GitHub上使用了Pull Request操作
2、pre_release预发布分支同意了该Pull Request请求,Merge了代码
3、但是此时发生了一些事情,需要进行Revert,使用GitHub上的Revert功能把该Pull Request进行Revert
症状如下:
1、Revert后,feature_order特性分支从pre_release预发布分支上拉取代码到本地进行Merge合并,发现之前Pull Request的代码被删除了
2、如果不从pre_release预发布分支上拉取代码,也不能再次进行Pull Request操作,显示没有改动,这里应该是和CommitId有关,因为Revert是发起一次新的Pull Request后进行的Merge,之前的Merge已经在历史中了,没有改动看起来也算合理
除非在pre_release预发布分支再次对刚刚Revert操作发起的Pull Request这整个操作产生的Commit再次进行Revert,也就是撤销“撤销”操作,这样的话不就把想撤下来的代码再次放到pre_release预发布分支才可以恢复过来……
我想要的是feature_order特性分支上的代码不被删除,可以对pre_release预发布分支发起Pull Request,撤消后代码不被删除
请问各位前辈该怎么做才对?实在是无解的死循环啊……
我处理这种事情的手段比较粗暴,通常不会使用revert而是reset,将pre_release分支reset到pull request之前的hash即可。
另外推荐两个命令:cherry-pick和rebase,在处理这种错误操作的时候十分有用。
另另外附一篇我的日志:http://leo108.com/pid-2026.asp