如何更改拉取请求的基本分支?

时间:2012-04-09 23:15:57

标签: github pull-request

我在GitHub上的项目上创建了一个拉取请求到一个特定的远程分支。一段时间后,远程分支被删除。

如何将拉取请求更改为指向另一个分支(具体为master)?

7 个答案:

答案 0 :(得分:75)

更新:正如Michael在下面所说,this is now possible

  

您现在可以更改打开拉取请求的基本分支。创建拉取请求后,您可以修改基本分支,以便将拉取请求中的更改与不同的分支进行比较。通过更改原始拉取请求的基本分支而不是使用正确的基本分支打开新分支,您将能够保持有价值的工作和讨论。

按拉动请求的标题单击编辑按钮以显示基本分支选择器。

An animated example of how to change a pull request's base branch.


旧答案

你做不到。只需提出新的拉取请求。

答案 1 :(得分:36)

虽然没有记录,但您可以使用GitHub REST API执行此操作。

this answer中解释了API的用法,但基本上您可以发出类似这样的REST请求:

$ curl --user "tom" \
       --request PATCH \
       --data '{"issue": "15", "head": "tom:new-branch", "base": "master"}' \
       https://api.github.com/repos/fred/fabproj/pulls

这将更改fred/fabproj repo上问题15所体现的拉取请求,以便在new-branch分叉上使用tom/fabproj分支。

  

修改:注意:根据评论,上述内容仅适用于拉取请求附加到现有问题

答案 2 :(得分:18)

截至2016年8月15日,现在可以通过Github本地实现:

  

您现在可以更改打开拉取请求的基本分支。创建拉取请求后,您可以修改基本分支,以便将拉取请求中的更改与不同的分支进行比较。通过更改原始拉取请求的基本分支而不是使用正确的基本分支打开新分支,您将能够保持有价值的工作和讨论。

答案 3 :(得分:2)

我可以更改目标分支。 确实,我们无法在PR中编辑目标分支的名称。但诀窍是将分支重命名为其他内容,并将目标分支重命名为PR中已存在的分支。

示例:我的公关名称为" dev-4.9"。还有另一个分支名为" qa-4.9"。我想要的只是" qa-4.9"应该是PR目标分支。 步骤:1 1)重新命名分支" dev-4.9"别的东西" original-dev-4.9"

git checkout dev-4.9
git branch -w original-dev-4.9
git push origin original-dev-4.9

2)重新命名分支" qa-4.9"到" dev-4.9"。

git checkout qa-4.9
git branch -w dev-4.9
git push origin dev-4.9 -f (force push to write entire branch to reflect dev-4.9)

3)刷新PR url并查看那里反映的qa-4.9中的提交。

答案 4 :(得分:1)

Instead of losing all the comments connected with a PR to a deleted branch:

  1. create the branch again locally with the same name and the same contents the branch you want to merge to has;
  2. push that branch to recreate the remote branch; and then
  3. reopen the PR to the branch.

For example, you have a PR to branch1, which is deleted. You now want to merge to master and retain comments on your existing PR:

  1. git checkout master
  2. git pull
  3. git checkout -b branch1
  4. git push
  5. reopen your PR to branch1
  6. when merged to branch1, merge to master.

This is a bit hacky, but far better than destroying lots of comments.

答案 5 :(得分:0)

Github现在支持这一点。 PR右侧的编辑按钮。

答案 6 :(得分:-2)

理论上......

你应该使用github api

示例:使用curl

编辑拉取请求
curl --user "your_github_username" \
     --request PATCH \
     --data '{"title":"newtitle","body":"newbody",...}' \
     https://api.github.com/repos/:owner/:repo/pulls/:number

您可以在github developer doc

中找到详细的数据清单

示例:更改my pull request

的名称
curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9

但实际上......

似乎字段head/labelhead/ref不可编辑。目前,唯一的解决方案似乎是that of Amber