Git 从主分支还原合并的更改

Git 从主分支还原合并的更改,git,azure-devops,Git,Azure Devops,我已经创建了一个功能分支(Feature1)并对其进行了处理。拉请求合并到远程主分支(没有快进选项-azure devops)。之后,其他开发人员会在主分支上执行其他一些签入 我创建了另一个功能分支(Feature2)并进行了工作。再次将请求合并到主分支 现在,我想从master恢复Feature1和Feature2分支的更改。我没有删除Feature1和Feature2分支 Feature1和Feature2分支应该合并到另一个分支中,而不是主分支 现在,我应该如何在不涉及其他开发人员签入的情

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

我创建了另一个功能分支(Feature2)并进行了工作。再次将请求合并到主分支

现在,我想从master恢复Feature1和Feature2分支的更改。我没有删除Feature1和Feature2分支

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


现在,我应该如何在不涉及其他开发人员签入的情况下从master中删除功能1和功能2更改?

既然要从主分支恢复提交,那么最好的选择是。例如,如果您试图通过交互式重基从主机的历史记录中完全删除提交,则删除的提交之后的提交ID将发生更改。请记住,您不想更改master中的commit id,因为其他开发人员可能正在处理具有这些commit id的功能分支,并且在以后合并到master时可能会遇到合并冲突的问题

git revert feature1Commit1..feature1Commitn
git revert feature2Commit1..feature2Commitm
您可以在从master创建的新特性分支上找到特性分支提交并恢复它们,如下所示,然后向master发出pull请求

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

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

阅读此答案,它将照亮您的一天:我使用了azrue pull请求还原选项。这很简单。