我在GitHub上的项目上创建了一个拉取请求到一个特定的远程分支。一段时间后,远程分支被删除。
如何将拉取请求更改为指向另一个分支(具体为master
)?
答案 0 :(得分:75)
您现在可以更改打开拉取请求的基本分支。创建拉取请求后,您可以修改基本分支,以便将拉取请求中的更改与不同的分支进行比较。通过更改原始拉取请求的基本分支而不是使用正确的基本分支打开新分支,您将能够保持有价值的工作和讨论。
按拉动请求的标题单击编辑按钮以显示基本分支选择器。
你做不到。只需提出新的拉取请求。
答案 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:
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:
This is a bit hacky, but far better than destroying lots of comments.
答案 5 :(得分:0)
Github现在支持这一点。 PR右侧的编辑按钮。
答案 6 :(得分:-2)
你应该使用github api。
curl --user "your_github_username" \
--request PATCH \
--data '{"title":"newtitle","body":"newbody",...}' \
https://api.github.com/repos/:owner/:repo/pulls/:number
中找到详细的数据清单
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/label
和head/ref
不可编辑。目前,唯一的解决方案似乎是that of Amber