Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GitHub:如何在每次单独提交时发送一个pull请求?_Git_Github_Branch_Pull Request_Pull - Fatal编程技术网

GitHub:如何在每次单独提交时发送一个pull请求?

GitHub:如何在每次单独提交时发送一个pull请求?,git,github,branch,pull-request,pull,Git,Github,Branch,Pull Request,Pull,我完成了一个项目。我做了一段时间。 我现在有十个不同的提交,每个提交独立于其他提交。 我想将每个提交作为一个单独的拉请求发送,让上游的维护者选择他/她想要的 我找不到一个简单的方法来做这件事。 我能找到的“最简单的”方法是创建十个独立的分支,然后将十个独立的提交中的每一个都挑选到这些分支中,然后从每个分支发送一个请求。 那是。。。不理智! (参见示例) 底层的git request pull函数支持这个工作流,那么这里的问题是GitHub没有一个好的接口来支持这个工作流吗?我注定要创建十个分支吗

我完成了一个项目。我做了一段时间。 我现在有十个不同的提交,每个提交独立于其他提交。 我想将每个提交作为一个单独的拉请求发送,让上游的维护者选择他/她想要的

我找不到一个简单的方法来做这件事。 我能找到的“最简单的”方法是创建十个独立的分支,然后将十个独立的提交中的每一个都挑选到这些分支中,然后从每个分支发送一个请求。 那是。。。不理智! (参见示例)


底层的
git request pull
函数支持这个工作流,那么这里的问题是GitHub没有一个好的接口来支持这个工作流吗?我注定要创建十个分支吗?

GitHub的Pull请求设计为每个分支,而不是每个提交

发送拉请求后,推送到分支的任何新提交都将自动添加到拉请求中。如果需要进行更多更改,这一点尤其有用


如果您想在GitHub中发送十个Pull请求,那么必须使用十个分支。唯一的例外是,如果您在提交下一个请求之前等待合并每个请求。

Grason Koonce建议了一个解决方案,相当于:

为每个工件创建连续的分支,并针对前一个分支点(而不是目标分支)发出拉取请求

一旦全部审核并接受合并,则按5->4,4->3,3->2,2->1的相反顺序合并,然后只有1->master/target

这并不漂亮,但它是一个解决方案


谢谢你的回答。虽然这可能是故意的,但也是愚蠢的。他们可以有一个复选框,我可以在其中选择包括或排除特定的更改。或者,如果我已经发送了变更N的请求,那么在尝试发送变更N+1的请求时也不要包含变更N。FWIW:如果您不必使用GitHub,Gerrit会以我个人认为更好的方式解决这个问题。您可以将更多的更改合并到特定的提交中,因为Gerrit中的提交是由保留在提交消息中的生成令牌标识的,而不是由git哈希标识的。拉请求基本上是比较两个分支并将一个分支合并到另一个分支。差异可能是数百次提交。分支只是指向提交的指针。所以,是的,我相信通过指定提交而不是分支来支持拉请求在某些情况下会提高一些效率。然而,传统永远不会如此轻易改变。这个答案中的链接被打破了,但我相信这描述了相同的工作流程。