如何将拉取请求合并到我的github项目的功能分支中?

时间:2015-01-31 17:31:42

标签: git github pull-request

有人从分叉向我的GitHub项目提交了拉取请求。我宁愿将更改合并到一个功能分支中,而不是直接合并到master中,这样我就可以在将最终产品合并到master之前进行一些小的编辑。如果可能的话,我希望GitHub向提交者表明请求已被接受(我想鼓励并认可贡献!)。这可能吗?我该怎么做呢?

4 个答案:

答案 0 :(得分:2)

如果您可以更改拉取请求的合并目标,那就太好了。如果您可以在接受拉取请求之前进行协作以解决小问题,那也很好。 AFIAK Github不允许这两样东西。你有这些选择......

  1. 手动合并并感谢作者在PR的评论中解释为什么它没有直接合并到主人。
  2. 要求作者在功能分支上重新提交拉取请求。
  3. 要求作者进行修复。
  4. 我会#1因为它需要较少的作者工作。他们是志愿者,他们完成了工作,他们的工作应该完成。最好的谢谢你接受他们的工作。要求他们做行政工作,这样你可以更好地说“谢谢”是浪费他们的志愿者时间。要求他们修复可能需要更长时间才能解释的次要编辑而不仅仅是执行。我认为任何人都不会因为没有正式接受他们的公关而被推迟。他们的提交仍然会出现在你的项目中。

    有时候会做#3。通常当你觉得小修正将有助于这个人做出更好的未来贡献。我通常的立场是第一次提交,我自己解决了一些小问题并注意到对PR的评论中的修正(“嘿,我修复了ABC123中的一些小问题。”)如果他们继续犯同样的错误,那么它可能会值得评论他们的提交并让他们做修复。您还需要确保拥有contribution guide并且它是最新的。

答案 1 :(得分:2)

这是可能的!首先创建一个功能分支:

$ git checkout -b my-feature

然后将拉取请求的更改拉入并合并到新功能分支:

$ git pull https://github.com/user/fork.git

在新提交中进行小幅调整:

$ # make changes
$ git commit -am "my minor changes"

然后将您的功能分支合并为master并推送到github。

$ git checkout master
$ git merge my-feature
$ git push origin master

这将反映在github.com上的pull请求中,如果您愿意,可以发表评论,感谢提交者。

答案 2 :(得分:2)

首先,您应该创建请求请求所针对的分支的副本。 之后,您可以通过单击“编辑”按钮来编辑已打开(即使您没有打开)的“拉取请求”来更改分支(请参见下图)。 完成此操作后,应再次检查目标分支是否已更改。

如果更改成功,则可以将PR合并到新分支中。

Edit button location

Branch selection when clicking the edit button

Changed target branch

答案 3 :(得分:0)

我最近不得不接受贡献者的公关,我遵循以下流程:

git fetch <fork-url> <PR-branch name>

上面的命令应该给你一个FETCH_HEAD(这是一个短命的引用,用于跟踪刚刚从远程存储库中获取的内容)

现在从这个FETCH_HEAD创建一个分支作为一个起点&#39;

git checkout -b my-feature-branch FETCH_HEAD

现在,既然你有了本地分支,那么你可以做常用的事情,比如重基,合并等。

一旦你将这个分支与master合并并推送它,我会在贡献者的公关中放入提交哈希并感谢他: - )