在GitHub.com上恢复受保护分支的合并提交

我们已经在GitHub上保护了我们的开发分支,这样没有下游可以直接推送它们的提交。 提交需要通过特定的功能分支并通过拉取请求合并。

出现了一个特性分支合并到开发分支(经过适当审查和更改)后,我们需要稍后恢复(也许是由于需求变化)的情况。 如果我尝试恢复下游的合并提交,它将不允许我推送,因为分支受到保护。 我记得当我们合并分支时,GitHub提供了回复按钮。 但不知何故,我现在无法看到(或找到)按钮。 我们需要在优先级上恢复提交,因此我们暂时从开发分支中删除了保护,并推迟了恢复提交(最丑陋的黑客)。

有没有其他更好的选择来恢复受保护分支的提交? 也许我错过了或误解了一些GitHub功能。

还有一种情况是,如果我在合并后从GitHub中删除了分支,那么我该如何恢复它呢?


在GitHub上恢复

您不需要在GitHub上恢复(取消删除)分支以恢复因请求而产生的合并提交。 例如:

可恢复的拉取请求

不可恢复的拉动请求

有时回复按钮不会出现。 从GitHub帮助恢复拉取请求:

注意:如果出现以下情况,您可能需要使用Git手动还原单个提交:

  • 恢复拉取请求会导致合并冲突
  • 最初的pull请求最初并未在GitHub上合并(例如,在命令行上使用快进合并)
  • 我花了一段时间才找到一个例子,但是如果头部分支没有使用GitHub上的大绿色按钮合并到基本分支中,那么它不能在GitHub上恢复:

    不可恢复的拉取请求

    git revert

    在本地的命令行中,您可以使用git revert命令来恢复更改。

    这将适用于您的受保护分支和下游分支。 git revert会在当前HEAD之前创建一个新的提交,因此您不需要强制推送,并且如果来自下游分支,则可以手动为已还原的更改创建拉取请求。

    恢复合并提交比恢复单亲提交要复杂得多,所以我建议看一下这个问题以获取更多信息,因为这是我以前从未做过的事情。

    如果人们不习惯使用命令行,我认为SourceTree在上下文菜单上有一个项目来恢复提交,但我不知道它如何处理合并提交。 其他GUI应用程序中可能有类似的选项。

    希望这可以帮助!

    链接地址: http://www.djcxy.com/p/49827.html

    上一篇: Revert a merge commit from a protected branch on GitHub.com

    下一篇: How to reset a branch to the state before pushing to a commit