eoi*_*noc 110 git github pull-request
拉取请求进入我在Github上托管的仓库.默认情况下,它会合并到master分支中.
我有什么方法可以更改哪些分支将合并到哪个分支中?
mal*_*yas 71
截至2016年8月15日, GitHub允许通过GUI更改拉取请求的目标分支.单击Edit标题旁边的,然后从下拉列表中选择分支.

您现在可以更改打开拉取请求的基本分支.创建拉取请求后,您可以修改基本分支,以便将拉取请求中的更改与其他分支进行比较.通过更改原始拉取请求的基本分支而不是使用正确的基本分支打开新分支,您将能够保持有价值的工作和讨论.
Dan*_*man 52
提交者可以在发出拉取请求时更改它,但一旦发出请求,您就无法更改它.
另一方面,您可以手动合并他们的分支和推送,这是我经常为错误的拉取请求做的.
您可能会发现hubgem有助于处理pull请求的组件.
那个gem包含了手动过程,即:
git checkout ${target_branch} && git merge ${remote}/${branch}git push origin ...Grz*_*icz 13
使用其他答案提到的hub gem的替代方法是使用命令行来合并本地pull请求,这允许您执行以下操作:
$ git fetch origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git push origin *target_branch*
Run Code Online (Sandbox Code Playgroud)
如果您首先将以下行添加到.git/config文件中,则上述命令只能直接使用:
fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/*
Run Code Online (Sandbox Code Playgroud)
这样做可以让你下载所有拉取请求.由于可能不需要大量的repos,GitHub修改了指令以使用git fetch origin pull/ID/head:BRANCHNAME语法,这避免了修改配置文件并且只下载了单个pull请求.
Daniel Pittman的解决方案没有任何问题,但我会将这些合并视为"没有快进",即更改第3步:
git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}
Run Code Online (Sandbox Code Playgroud)
通过使用--no-ff,历史将更容易阅读.它会清楚地表明$n提交来自$branch,如果您需要恢复在该分支中完成的任务,它也将使您的生活更轻松.
还要回答eoinoc的问题,并提供额外的提示:
在进行合并之后,你的git cli会提示你写一条消息,通常一条通用消息会显示出类似的内容
将远程跟踪分支'user/their-branch'合并到您的分支中
确保编辑该消息并包含对拉取请求编号的引用.即:(假设拉请求数为123)
将远程跟踪分支'user/their-branch'合并到您的分支中
refs#123解决任何问题......
因此,下次当您访问github问题/ pull-requests页面并检查特定的pull请求时,您将看到包含提交合并的提交链接的消息.
这是我的意思的屏幕截图.

虽然您不能更改现有的pull请求,因为它不是您的,如果相关的源存储库仍然存在,您可以轻松地创建一个新的请求 - 是的,即使它是其他人的.
转到提交者的存储库,然后使用相同的提交在他/她的存储库中创建一个新的拉取请求,但请确保正确设置正确的目标分支.
然后返回到您自己的存储库并接受新的pull请求.瞧!
要做到这一点,请转到存储库的主页,单击分支,然后将默认分支从master更改为其他内容,在我的情况下为"dev".
之后,每当有人创建拉取请求时,该merge按钮将自动将请求合并到"dev"而不是master.

| 归档时间: |
|
| 查看次数: |
43555 次 |
| 最近记录: |