16

我已经对我的本地存储库进行了多次提交,现在我打算进行拉取请求以将这些更改提交给源/主。

当我发出拉取请求时,它会自动包含我的所有提交。我找不到在自己的拉取请求中提交每个提交的方法。有人可以指点一下如何在 GitHub 上执行此操作。

更新 为了澄清这个问题,我从上游/主服务器分叉了一个新的本地存储库。然后,在我的菜鸟中,我在本地主机本身中创建了新文件,而没有先将 repo 分支出来。所以,实际上,我的问题是这些更改提交给本地主仓库,有没有办法一个一个地为每个新文件提出拉取请求,而不是一次性提出所有的请求。

非常感谢。

4

2 回答 2

20

我不确定 GitHub 中是否有更好的方法,但总的来说,您可以为每个拉取请求创建一个新分支,为每个请求挑选您想要的提交。新分支最好基于上游 master 以使合并无痛。

使用命令行 git,origin作为你自己的 github 远程仓库,upstream是上游远程:

git checkout -b {my_pull_request_feature_branch} upstream/master
git cherry-pick {sha1_of_first_commit_for_feature_X} [sha1_of_another_commit_for_feature_X] ...
git push origin {my_pull_request_feature_branch}

对每个拉取请求重复。

当您在 GitHub 上执行拉取请求时,您可以选择要在请求中发送的分支。

于 2013-06-07T13:16:05.060 回答
6

提交不是独立存在的,它始终链接到完整的先前历史记录。因此,如果您要求拉取取决于您的提交 A 的提交 B,那么您也要求拉取 A,因为您在 B 中的工作取决于它。

如果你想提交多个独立的拉取请求,你应该确保这些提交是完全独立的。所以他们应该在自己的分支上。这也使项目维护人员更容易集成您的拉取请求,因为他们可以合并分支而无需挑选东西。

于 2013-06-07T13:22:02.453 回答