如何更改拉请求的基本分支?
我在GitHub的项目上创build了一个pull请求到一个特定的远程分支。 一段时间后,远程分支被删除。
我怎样才能改变拉请求指向另一个分支(特别是master
)?
更新:正如迈克尔注意到, 现在这是可能的 :
您现在可以更改打开的拉取请求的基本分支。 创build拉取请求后,可以修改基本分支,以便将拉取请求中的更改与不同的分支进行比较。 通过更改原始拉取请求的基本分支,而不是使用正确的基本分支打开新分支,您将能够保留有价值的工作和讨论。
通过拉取请求的标题单击编辑button以显示基本分支select器。
老答案
你不能。 只是做一个新的拉请求。
虽然没有logging,但可以使用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
repo中问题15所包含的拉取请求,以使用tom/fabproj
分支上的new-branch
分支。
编辑:注意:根据意见,上述只是为了附加一个新的拉动请求到现有的问题 。
截至08/15/2016,现在可以通过Github本地进行:
您现在可以更改打开的拉取请求的基本分支。 创build拉取请求后,可以修改基本分支,以便将拉取请求中的更改与不同的分支进行比较。 通过更改原始拉取请求的基本分支,而不是使用正确的基本分支打开新分支,您将能够保留有价值的工作和讨论。
我可以改变目标分支。 确实,我们不能在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 url,看看在那里反映的qa-4.9的提交。
而不是丢失与PR关联的所有评论到已删除的分支:
- 在本地再次使用与要合并的分支相同的名称和相同的内容创build分支;
- 推送该分支来重新创build远程分支; 接着
- 重新打开公关到分支。
例如,你有一个PR到branch1,它被删除。 您现在想要合并以掌握并保留您现有PR上的评论:
- git checkout master
- 混帐拉
- git checkout -b branch1
- 混帐推
- 重新打开你的PR到branch1
- 当合并到分支1时,合并到主。
这有点不好意思,但要比摧毁很多意见好得多。
Github现在支持这个。 PR右端的编辑button。
理论上…
你应该使用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开发人员文档中find详细的数据列表
例如:更改我的拉取请求的名称
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
字段是不可编辑的。 现在,唯一的解决scheme似乎是琥珀的解决scheme