在拉取请求时重命名分支

     2023-03-11     137

关键词:

【中文标题】在拉取请求时重命名分支【英文标题】:Renaming a branch while on pull request 【发布时间】:2013-11-29 05:30:56 【问题描述】:

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

现在,我在 Github 上提交了一个拉取请求,我的贡献位于一个名为 patch-1 的分支上。我可以通过

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

原则上,我也可以按照this answer 中的说明在 Github 上的分叉存储库中重命名它。这实际上是通过删除旧分支 patch-1 在我的例子中完成的,并用不同的名称重新推送它 newname

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

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

【问题讨论】:

现在更容易做到(自 2021 年 1 月起)。见my answer below 【参考方案1】:

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

因此,不,您不能在打开拉取请求的情况下重命名分支,而无需删除分支并移除拉取请求。但是,没有什么能阻止你这样做,用新名称推送一个新分支,并创建一个新的拉取请求。

【讨论】:

不这样做的一个原因是失去了对现有 PR 的讨论。 我不明白为什么对 PR 上的源分支重命名有如此严格的限制。 bitbucket 中存在同样令人讨厌的行为。另一种方法是编辑 PR 并将源分支更改为另一个分支。有人可能会说“如果您更改源分支,那么无论如何它都是一个新的 PR”。从技术上讲,是的,但也没有什么能阻止开发人员从完全不同的分支设置上游,然后执行git push -f。 PR 更新了一个全新的代码,仍然是“相同”的 PR。【参考方案2】:

更新(2021 年 10 月):

查看this answer

原始答案(2018 年 1 月):

简答:

没有

替代方法:

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

注意:

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

【讨论】:

鉴于分支通常在合并后被删除,我认为“容忍”名称不准确比添加引用旧 PR 的新 PR 的开销更好跟踪历史讨论。 关于“更新”答案:我认为 OP 的意图是更改“来自”分支,而不是基础分支。我不明白这会有什么帮助。 @SlobodanIlic 你能删除以下过时的评论吗?***.com/questions/20007578/… «分支通常在合并后删除»所以最终重要的是合并提交,仍然说类似Merge pull request #999 from wip-experimental-branch-try-something,即使在那时,它已经过良好测试并且不再是实验性的。【参考方案3】:

简答:

对于目标分支是。自 2021 年 1 月起

详情

参见“Support for renaming an existing branch”。

“How do I rename branch on the GitHub website?”中的详细信息。

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

charlie Harding 在 cmets 中添加:

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

作为Michael Freidgeim 添加the comments:

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

【讨论】:

这是为了重命名拉取请求的错误结尾。 “将更新 4 个针对此分支的拉取请求”意味着它将更改拉取请求想要合并到的分支。无论如何,这在以前是可以通过那些 PR 的页面实现的。另一方面,尝试重命名作为 PR 来源的分支将导致该 PR 被关闭(“将关闭该分支的 1 个打开的拉取请求。”)。 @CharlieHarding 谢谢。我已相应地修改了答案,并将您的评论包含在所述答案中以提高知名度。 github.communitygithub.community/t/update-pull-requests-from-renamed-branch/…987654329@有一个支持重命名base分支的请求 @MichaelFreidgeim 谢谢。我已将您的评论包含在答案中以提高知名度。

Git在拉取请求分支上恢复樱桃选择而不在主控上恢复

】Git在拉取请求分支上恢复樱桃选择而不在主控上恢复【英文标题】:Gitrevertcherrypickonpullrequestbranchwithoutrevertingonmaster【发布时间】:2014-06-1415:37:36【问题描述】:我读到我可以使用gitrevert撤消一个樱桃选择。我试图从项目的主... 查看详情

如何在拉取请求中压缩提交

】如何在拉取请求中压缩提交【英文标题】:HowtosquashcommitsinaPullrequest【发布时间】:2021-05-1108:03:20【问题描述】:我有一个关于开源存储库的拉取请求,其中包含一个提交,例如commita。现在有人要求我更改该提交中的一些代码... 查看详情

java开发的话,可以在拉取的代码里开发吗

一、使用Git拉取项目到本地1、团队实际开发Git概况在实际开发的项目中,一个项目会有三种版本分支:master版本分支、dev版本分支、自定义版本分支master版本分支:正式运行环境中的程序代码,运行环境会定期自动或按计划手... 查看详情

在拉取请求完成时隐藏 Github 操作

】在拉取请求完成时隐藏Github操作【英文标题】:HideGithubActionwhencompletedonPullRequest【发布时间】:2020-03-2406:54:23【问题描述】:我有一个GitHub操作,它评估某些内容,然后使用结果创建状态检查。setup是评估结果,linting是结果(... 查看详情

Github API Auth 无法在拉取请求上添加评论

】GithubAPIAuth无法在拉取请求上添加评论【英文标题】:GithubAPIAuthnotworkingwithaddingacommentonapullrequest【发布时间】:2016-01-2714:47:55【问题描述】:根据另一个***帖子,您应该使用问题API来向拉取请求添加评论。似乎合乎逻辑,因为... 查看详情

rubyhack在拉取请求期间自动化样式指南评论(代码片段)

查看详情

GitHub:获取当前在拉取请求中的一个特定文件的所有更改

】GitHub:获取当前在拉取请求中的一个特定文件的所有更改【英文标题】:GitHub:Getallchangesofoneparticularfilethatarecurrentlyinpullrequests【发布时间】:2022-01-1011:54:01【问题描述】:我正在开发一个有许多贡献者的大型存储库,目前它有... 查看详情

为啥 GitHub 不会在拉取请求中触发“持续集成/jenkins/pr-merge”?

】为啥GitHub不会在拉取请求中触发“持续集成/jenkins/pr-merge”?【英文标题】:Whyis"continuous-integration/jenkins/pr-merge"notbeingtriggeredbyGitHubonapullrequest?为什么GitHub不会在拉取请求中触发“持续集成/jenkins/pr-merge”?【发布时间... 查看详情

git标签合并了吗?

...布/1....分支并且对于每个修补程序或功能,还有一个分支在拉取请求被接受后合并到起始分支中。所以我的问题是:如果release分支包含Tags,如果release分支在最后一个release/1.x.y版本之后被合并到master中,那么 查看详情

无法使用 Azure DevOps 拉取请求排队生成错误

...llRequest【发布时间】:2021-03-1211:16:25【问题描述】:我想在拉取请求开始之前触发构建以进行合并(在AzureDevOps中)。对于这个选项,我在分支策略下添加了构建验证。但是,如果我创建了一个新的拉取请求,我会收到“无法排... 查看详情

如何拒绝提交到 TFS 2015 上的远程主分支?

...们使用拉取请求将远程开发中的更改合并到远程主分支。在拉取请求完成之 查看详情

VSTS 发布拉取请求构建触发器

...p;Release机制,结合拉取请求分支安全设置,这样代码只能在拉取请求完成时才被合并。虽然我们遇到了一些奇怪的事情,因为当创建拉取请求(并生成构建以证明提交)时-由拉取请求触发的此构建的完成也间接触发了发布,因... 查看详情

Bamboo:创建拉取请求时创建“计划分支”,但按目标分支过滤

】Bamboo:创建拉取请求时创建“计划分支”,但按目标分支过滤【英文标题】:Bamboo:create"planbranch"whenpullrequestiscreated,butfilterbytargetbranch【发布时间】:2021-09-2907:48:35【问题描述】:我希望我的BitBucket实例在创建拉取请求... 查看详情

多分支管道作业未显示打开的拉取请求

】多分支管道作业未显示打开的拉取请求【英文标题】:Multibranchpipelinejobnotshowingopenpullrequests【发布时间】:2017-09-2423:08:14【问题描述】:我在Jenkins中配置了一个多分支管道作业,链接到我们的GitHub存储库,它运行良好,将检... 查看详情

在功能分支上测试时如何使用 Git 拉取请求

】在功能分支上测试时如何使用Git拉取请求【英文标题】:HowtouseGitpullrequestswhentestingonfeaturebranch【发布时间】:2016-07-2400:00:53【问题描述】:我们刚刚升级到最新版本的BitBucket,它允许我们禁用直接推送到主分支。现在我们使... 查看详情

一个分支可以打开多个拉取请求吗

】一个分支可以打开多个拉取请求吗【英文标题】:Canabranchopenmultiplepullrequests【发布时间】:2022-01-2205:47:39【问题描述】:我对GitHub不太熟悉,但是我有一个功能分支,我想将其当前的更改合并到master多次。理想情况下,我想... 查看详情

如何使用“合并前需要拉取请求审查”来保护分支

】如何使用“合并前需要拉取请求审查”来保护分支【英文标题】:Howtoprotectbranchwith"Requirepullrequestreviewsbeforemerging"【发布时间】:2020-02-2019:40:59【问题描述】:我已在github.community上发布了此内容,但尚未得出任何解决... 查看详情

jgitflow 和拉取请求

】jgitflow和拉取请求【英文标题】:jgitflowandpullrequest【发布时间】:2016-06-1611:04:25【问题描述】:我是git新手。我对git的基本知识知之甚少,而且我在使用它方面相当成功。所以我有一个master,develop分支。从开发我已经分支到... 查看详情