使用pull请求从主服务器恢复合并提交(受保护的主服务器)

时间:2018-05-07 10:09:36

标签: git

是否可以从已推送到遥控器的功能分支恢复主设备上的合并提交?

E.g。从master中的合并提交创建一个功能分支,还原功能分支中的提交和合并?

或者您是否需要对主人进行还原并从主人那里推送?

我在一个设置中,只允许通过Pull Request分支对master进行更改,以便调查我们是否可以某种方式使用git revert merge commit操作,如下所述:

Undo a Git merge that hasn't been pushed yet

2 个答案:

答案 0 :(得分:1)

创建一个分支,您可以在其中恢复提交,然后将其与主服务器合并。

这样的事情:

git checkout master
git pull
git checkout -b feature/revert_dev
git revert [hash of the commit that you want to revert]
git push -u origin (or whatever you are naming your remote) feature/revert_dev

然后将feature/revert_dev与主

合并

答案 1 :(得分:1)

如果你要恢复合并,你应该确定你理解其含义,因为它们并不明显。如果您了解其含义并仍想恢复合并,则受保护的主分支不是障碍。

受保护分支无关紧要的原因是,恢复只是一个提交,其更改(相对于其父级)恰好撤消一个或多个其他提交(相对于其父级)的更改。它可以在分支上完成,然后使用PR进行合并,或者引入更改master的提交所需的任何其他过程。

revert本身需要特殊的参数,告诉git合并要恢复的父级。更重要的是,一旦将恢复合并到master,将很难重新合并您已合并的合并分支(因为git会将其视为"已经合并&#34)。您在此时的选项将是"还原还原",或者创建与分支具有相同效果的新提交(例如,通过对其执行rebase -f)。

相关问题