从主分支还原合并的更改

时间:2020-03-02 14:49:51

标签: git azure-devops

我创建了一个功能分支(Feature1)并对其进行了处理。拉取请求已合并到远程主分支(没有快速转发选项-Azure devops)。之后,其他开发人员在master分支上完成了其他一些签入。

我创建了另一个功能分支(Feature2)并对其进行了处理。再次将pull请求合并到master分支。

现在,我想从master还原Feature1和Feature2分支更改。我没有删除Feature1和Feature2分支。

Feature1和Feature2分支应该合并到另一个分支,而不是master分支。

现在我该如何在不接触其他开发人员签到的情况下从母版中删除功能1和功能2的更改?

1 个答案:

答案 0 :(得分:1)

由于您要还原其提交是master分支,因此最佳选择是git revert。例如,如果您尝试通过交互式基础完全从master历史记录中删除提交,则跟随已删除提交的提交ID将会更改。请记住,您不希望更改master中的提交ID,因为其他开发人员可能正在使用具有这些提交ID的功能分支,并且他们以后合并到master中时可能会遇到合并冲突的麻烦。

您可以找到功能分支的提交,并像下面这样在从master创建的新功能分支上还原它们,然后将拉取请求提供给master。

git revert feature1Commit1..feature1Commitn
git revert feature2Commit1..feature2Commitm

这实际上会创建新的提交,以还原您的更改。因此,您的feature1和feature2提交ID保留在主提交中,但是您所做的更改实际上将在创建的新提交ID中恢复。