gpt4 book ai didi

git - 从 GitHub.com 上 protected 分支恢复 merge 提交

转载 作者:IT王子 更新时间:2023-10-29 00:38:22 26 4
gpt4 key购买 nike

我们在 GitHub 上保护了我们的开发分支,这样下游的任何人都无法直接推送他们的提交。提交需要通过特定的功能分支并通过 pull 请求 merge 。

出现了一个场景,其中一个功能分支被 merge 到开发分支(经过适当的审查和更改之后),我们需要稍后恢复它(可能是由于需求的变化)。如果我尝试还原下游的 merge 提交,它将不允许我推送,因为分支是 protected 。我记得 GitHub 在我们 merge 分支时提供了恢复按钮。但不知何故,我现在看不到(或找不到)按钮。我们需要优先恢复提交,所以我们暂时从开发分支中删除了保护并推送了恢复提交(最丑陋的黑客)。

是否有其他更好的方法来恢复 protected 分支的提交?也许我遗漏或误解了一些 GitHub 功能。

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

最佳答案

在 GitHub 上恢复

您不需要恢复(取消删除)GitHub 上的分支来恢复 pull 请求产生的 merge 提交。例如:

Revertable pull request

不可恢复的 pull 请求

有时不会出现还原按钮。来自 reverting a pull request 上的 GitHub 帮助:

Note: You may need to use Git to manually revert the individual commits if:

  • Reverting the pull request causes merge conflicts
  • The original pull request was not originally merged on GitHub (for example, using a fast-forward merge on the command line)

我花了一段时间才找到一个例子,但如果没有使用 GitHub 上的绿色大按钮将 head 分支 merge 到 base 分支,那么它就无法在 GitHub 上恢复:

Non-revertable pull request

git 还原

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

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

还原 merge 提交比还原单亲提交稍微复杂一些,所以我建议看一下 this question了解更多信息,因为这是我以前从未做过的事情。

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

希望这对您有所帮助!

关于git - 从 GitHub.com 上 protected 分支恢复 merge 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42548836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com