在拉取请求时重命名分支

Mic*_*ele 80 git github pull-request

在Github上,您可以发出拉取请求以向项目添加功能.一个人的贡献必须在一个分支上,如果请求被接受,将被合并到项目的主分支(或类似的分支)中.

现在,我在Github上提交了一个pull请求,我的贡献在一个名为的分支上patch-1.我可以在本地修改分支的名称

git branch -m patch-1 newname
Run Code Online (Sandbox Code Playgroud)

原则上我也可以按照本回答中的说明在Github上的分叉回购中重命名.这在实践中通过删除旧分支来完成,patch-1在我的情况下,并用不同的名称重新刷新它newname.

patch-1当它构成一个拉取请求时,是否允许在Github上的分叉存储库中重命名该分支?或者它会导致拉取请求管理出现问题?

当该分支是拉取请求时,有没有办法在Github上的分叉存储库上重命名分支?

小智 96

"重命名"git中的远程分支,如您提供的链接所示,实际上只是删除一个分支,然后推送一个具有相同提交哈希但新名称的新分支.如果您为分支补丁1打开了拉取请求,则在删除该分支时,拉取请求将被关闭.

因此,不能在不删除分支并删除拉取请求的情况下打开拉取请求来重命名分支.但是,没有什么可以阻止你这样做,推动一个新名称的新分支,并创建一个新的拉取请求.

  • 不这样做的一个原因是失去对现有公关的讨论. (142认同)
  • 我不明白为什么对 PR 上的源分支重命名有如此严格的限制。同样烦人的行为也存在于 bitbucket 中。另一种方法是编辑 PR 并将源分支更改为另一个分支。有人可能会说“如果你更改了源分支,那么它无论如何都是一个新的 PR”。从技术上讲,是的,但也没有什么可以阻止开发人员从完全不同的分支设置上游,然后执行“git push -f”。PR 已更新为全新代码,但仍然是“相同”的 PR。 (13认同)
  • 将“small-cosmeitc-changes”重命名为“small-cosmetic-changes”怎么样?或者从“fix-nasty-security-gub”到“fix-nasty-security-bug”?对以后总是可以通过更多步骤手动完成的事情进行严格限制是没有意义的。最好将这两个选项作为配置提供,并让存储库管理员决定。我的“git push -f”示例说明了一切,它甚至比重命名分支更糟糕但仍然允许。 (13认同)

小智 22

简短回答:

没有

替代方法:

  1. 使用新(重命名)分支打开新PR
  2. 关闭引用新的PR的旧PR(例如,关闭以支持#new_pr_id)
  3. 修改新PR的描述(例如Supersedes #old_pr_id)
  4. (可选)对旧公关的相关讨论发表评论

注意:

需要更改远程分支(构成PR)的名称,因为构建系统需要以故障单ID结尾的分支名称.然而,PR在官方门票创建之前(从规格)开放,并且包含了有价值的讨论.所描述的方法是使构建系统工作的唯一方法,也不会丢失任何信息(尽管跟踪它有一个额外的步骤).

  • 给定分支通常在合并后被删除,我认为最好是“容忍”一段时间内的名称不正确,而不是为了跟踪历史讨论而增加引用旧PR的新PR的开销。 (2认同)
  • 关于“更新”答案:我认为OP的意图是更改“from”分支,而不是基础分支。我不知道这有什么帮助。 (2认同)
  • @SlobodanIlic 您可以删除以下过时的评论吗?,/sf/ask/1400530491/#comment112870327_20007578 (2认同)

Von*_*onC 12

简短的回答:

是的目标分支。自 2021 年 1 月

细节

请参阅“支持重命名现有分支”。

重命名分支对话框 -- https://i2.wp.com/user-images.githubusercontent.com/2503052/105069955-a231fa80-5a50-11eb-982c-a114c9c44c57.png?ssl=1

如何在 GitHub 网站上重命名分支? ”中的详细信息。

github/renaming,这将重新定位任何打开的拉取请求。

正如查理哈丁在评论中补充的那样:

  • “将更新 4 个针对此分支的拉取请求”意味着它将更改拉取请求要合并的分支。
    无论如何,这以前可以通过这些 PR 的页面实现。
  • 另一方面,尝试重命名作为 PR 源的分支将导致该 PR 被关闭(“将关闭此分支的 1 个打开的拉取请求。”)。

  • 这是为了重命名拉取请求的错误端。“将更新针对此分支的 4 个拉取请求”意味着它将更改拉取请求想要合并到的分支。无论如何,以前可以通过这些 PR 页面实现这一点。另一方面,尝试重命名作为 PR 来源的分支将导致该 PR 被关闭(“将关闭该分支的 1 个开放拉取请求。”)。 (4认同)
  • github.community 中有支持重命名基础分支的请求 https://github.community/t/update-pull-requests-from-renamed-branch/157676/3 (2认同)
  • @Michele 我已经编辑了答案并恢复了社区讨论链接。 (2认同)