在github上的fork的fork上创建一个pull请求

时间:2014-02-03 12:16:22

标签: github pull-request

所以,

我有以下情况。 github上有原始的回购:Repo A。另外还有一个包含该回购的一些很好的补充:Repo B

所以我分叉了Repo B并添加了一些不错的代码。我创建了一个拉取请求,Repo B的所有者要求我直接向Repo A提出拉取请求。

现在的情况如下:

Repo A (original)
     |
     ▼
Repo B (some great features)
     |
     ▼
Repo C (my fork, has some changes that need to go to Repo A directly)

但是我无法直接向只保留我的更改的Repo A发出拉取请求。原因是我的更改所依据的其他一些更改(Repo B)。我在创建拉取请求时获得的是对Repo B所做的所有更改以及我对Repo C所做的更改。

在github上,由于名称已被使用,我无法创建项目的第二个分支。

那么,我现在该怎么办?是否有一个命令行可以解决这个问题?

1 个答案:

答案 0 :(得分:3)

将存储库A作为远程添加到本地存储库:

git remote add repo-a <url>
git fetch repo-a

根据您应该打开拉取请求的分支创建自己的分支。这通常是master,但请查看READMECONTRIBUTING文件以获取相关说明。

git checkout -b my-feature repo-a/master

现在,你正在一个名为my-feature的分支上(为你所做的事情命名)。使用cherry-pick获取您在此分支上的提交,其中<hash>是您提交的哈希:

git cherry-pick <hash>

您现在有一个本地分支准备好提取请求。将该分支推送到您的分支以发布它(假设origin是您的分支的远程名称):

git push origin my-feature

您现在可以在您的分支上从my-feature打开一个拉取请求到存储库A中的master