在拉取请求时重命名分支

问题描述 投票:0回答:3

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

现在,我在 Github 上提交了一个拉取请求,我的贡献位于一个名为

patch-1
的分支上。我可以通过

在本地修改分支的名称
git branch -m patch-1 newname

原则上我也可以按照这个答案中的说明在 Github 上的分叉存储库上重命名它。在实践中,这是通过删除旧分支来完成的,在我的例子中是

patch-1
,并使用不同的名称
newname
重新推送它。

当构成拉取请求时,是否允许在 Github 上的分叉存储库上重命名分支

patch-1
? 或者它会导致拉取请求管理出现问题?

当分支是拉取请求时,有什么方法可以重命名 Github 上分叉存储库上的分支吗?

git github pull-request
3个回答
169
投票

“重命名”git 中的远程分支,如您提供的链接所示,实际上只是删除一个分支,然后推送一个具有相同提交哈希但新名称的新分支。如果您有针对分支 patch-1 的拉取请求,则当您删除该分支时,拉取请求将被关闭。

所以,不,在不删除分支并删除拉取请求的情况下,您无法在打开拉取请求的情况下重命名分支。但是,没有什么可以阻止您这样做,用新名称推送新分支,并创建新的拉取请求。


55
投票

简短回答:

没有

替代方法:

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

注:

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


30
投票

简短回答:

不,这是不可能的。 GitHub 公开了一个分支重命名 UI 界面(自 2021 年 1 月起),但这将关闭针对该分支的 PR。

详情

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

详情请参阅“如何在 GitHub 网站上重命名分支?”。

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

正如 charlie Harding 在评论中添加的那样:

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

Michael Freidgeim评论中添加的那样:

github.community

中有支持重命名基础分支的请求。

© www.soinside.com 2019 - 2024. All rights reserved.