我在GitHub上针对一个特定的远程分支创建了一个拉取请求(pull request)。过了一段时间后,这个远程分支被删除了。
我应该如何修改这个拉取请求,使其指向另一个分支(具体来说是master
)?
我在GitHub上针对一个特定的远程分支创建了一个拉取请求(pull request)。过了一段时间后,这个远程分支被删除了。
我应该如何修改这个拉取请求,使其指向另一个分支(具体来说是master
)?
您现在可以更改开放式拉取请求的基础分支。创建拉取请求后,您可以修改基础分支,使拉取请求中的更改与不同分支进行比较。通过更改原始拉取请求的基础分支而不是打开具有正确基础分支的新拉取请求,您将能够保留有价值的工作和讨论。
点击拉取请求标题旁边的编辑按钮以显示基础分支选择器。
您不能这样做。只需创建新的拉取请求。
虽然没有文档,但是你可以使用GitHub REST API来实现这个功能。
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
存储库上体现为问题 15 的拉取请求,改为使用在 tom/fabproj
分支上的 new-branch
分支。
编辑:注意:根据评论,以上内容仅适用于将新的拉取请求附加到现有问题。
您现在可以更改打开的拉取请求的基本分支。创建拉取请求后,您可以修改基本分支,使拉取请求中的更改与不同的分支进行比较。通过更改原始拉取请求的基本分支而不是打开一个具有正确基本分支的新请求,您将能够保留有价值的工作和讨论。
我可以更改目标分支。 确实,我们无法在PR中编辑目标分支的名称。但是诀窍在于将分支重命名为其他内容,然后将您的目标分支重命名为已经存在于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链接并查看qa-4.9中的提交反映在那里。
不要失去与已删除分支相关联的所有评论,而是:
例如,您有一个针对branch1的PR,但该分支已被删除。现在,您想要合并到master并保留现有PR上的注释:
这有点hacky,但比破坏许多评论要好得多。
Github 现在支持此功能。PR 右侧有编辑按钮。
你应该使用 Github API。
curl --user "your_github_username" \
--request PATCH \
--data '{"title":"newtitle","body":"newbody",...}' \
https://api.github.com/repos/:owner/:repo/pulls/:number
你可以在GitHub 开发者文档中找到详细的数据列表。
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
无法编辑。目前,唯一的解决方案似乎是 使用Amber的方法。