I'm not sure, but I have a vague memory of creating a github pull request with "Issue 4" or something in the title, and it automatically attached itself to Issue 4 in the project that I was submitting it to. I tried it again recently and it didn't work -- it just created a brand new issue instead. I don't see any options like "Attach to issue" on the new pull request page, nor "Open a new pull request for this issue" on the issue page. Is there any way to do this, to help project owners keep their Issues page clean and avoid duplication?

编辑:澄清一下,我知道创建拉请求总是会产生一个新问题。我想把拉请求附加到一个现有的问题上。


当前回答

枢纽项目可以做到这一点。

在存储库和分支中,你想发送一个拉请求:

$ hub pull-request -i 4

这使用了GitHub API,并将当前分支的拉请求附加到现有问题4上。


编辑:@atomicules的评论:为了扩展@MichaelMior的答案,一个完整的例子是:

$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE

其他回答

你可以用Pull Request API从一个已经存在的问题中创建一个Pull Request:

$ curl --user "smparkes" \
       --request POST \
       --data '{"issue": 15, "head": "smparkes:synchrony", "base": "master"}' \
       https://api.github.com/repos/technoweenie/faraday/pulls

这将创建一个拉请求:

询问Faraday project的technoweenie (https://api.github.com/repos/technoweenie/faraday/pulls) 从smparkes的fork中的同步分支中提取("head": "smparkes:synchrony") 到technoweenie's fork中的master分支("base": "master") 并将拉请求附加到issue 15(“issue”:15) 与拉请求作者smparkes(——user "smparkes") 你会被提示输入你的GitHub密码

向现有的上游问题添加拉请求很容易,假设您使用正常的github方法进行分叉。

使用任何支持的关键字在提交消息中引用问题:

关闭 关闭 关闭 修复 修复 固定 解决 解决了 解决

例如:"this commit fixes #116"

引用该问题的文本不需要出现在提交的主题行中。

推送你的提交到你的github回购和拉请求将自动追加到问题。

注意:虽然这不是必需的,但强烈建议您将任何作为拉取请求一部分的内容提交到特定于该问题的单独分支,因为在该分支上的未来提交将被追加到拉取请求(由github自动执行)。所以,如果你没有创建一个独立的分支,把它留在master上,然后继续开发,那么所有你对master不相关的提交都会被追加到你的pull request中。

另一个可能的工具是Issue2Pr网站,它可以把你的问题变成Pull Requests。

这非常简单有效!

资源:

公告 GitHub库

使用git-hub工具,你可以这样做:

$> git枢纽拉附加123

这将把问题#123转换为拉请求#123,从而将关于该问题的所有讨论保持在一个位置。

枢纽项目可以做到这一点。

在存储库和分支中,你想发送一个拉请求:

$ hub pull-request -i 4

这使用了GitHub API,并将当前分支的拉请求附加到现有问题4上。


编辑:@atomicules的评论:为了扩展@MichaelMior的答案,一个完整的例子是:

$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE