在请求请求时重命名分支


101

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

现在,我在Github上提交了请求请求,我的贡献在一个名为的分支上patch-1。我可以通过以下方式在本地修改分支的名称

git branch -m patch-1 newname

从原则上讲,我也可以按照这个答案中的指示在我的Github分叉仓库上重命名它。在实践中,这是通过删除旧分支patch-1并用另一个名称将其重新推入来完成的newname

patch-1当它构成请求请求时,是否可以重命名我在Github上的分支存储库上的分支?还是在拉取请求管理上引起问题?

当分支是请求请求时,有什么方法可以重命名分支上的分支?

Answers:


117

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

因此,不,您不能在不删除分支并删除拉动请求的情况下,在拉动请求打开的情况下重命名分支。但是,没有什么可以阻止您执行此操作,使用新名称推入新分支以及创建新的拉取请求。


186
不这样做的原因之一是失去了对现有PR的讨论。
约翰尼·埃弗森

6
我不明白为什么要对PR上的源分支重命名这么严格的限制。位桶中也存在同样令人讨厌的行为。另一种方法是编辑PR并将源分支更改为另一个分支。有人可能会说:“如果您更改源分支,那么它仍然是新的PR”。从技术上讲,是的,但也没有什么可以阻止开发人员从完全不同的分支设置上游然后执行git push -f。PR会使用全新的代码进行更新,并且仍然是“相同”的PR。
L. Holanda

31

简短答案:

没有

替代方法:

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

注意:

需要更改远程分支(构成PR)的名称,因为构建系统需要以票证ID结尾的分支名称。但是,PR是在创建正式门票之前(根据规格)开放的,并进行了宝贵的讨论。所描述的方法是使构建系统正常工作的唯一方法,并且也不会丢失任何信息(尽管在跟踪过程中还有额外的步骤)。


9
给定分支通常在合并后被删除,我认为最好“容忍”一段时间内的名称不正确,而不是为了跟踪历史讨论而增加引用旧PR的新PR的开销。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.