在重新定义我的github fork之后,其他人的提交都在我的pull请求中

时间:2016-11-03 23:43:30

标签: git github conflict rebase

我创建了一个github fork并进行了一些更改,然后创建了一个pull请求。经过一些修改后,我做了一些额外的更改并重新设置了我的fork(然后是我的本地副本),然后提交并再次推送它。

现在我的拉取请求包含了很多其他人的变化: https://github.com/pandas-dev/pandas/pull/14505/files

我做错了什么,我该如何解决?我只改变了3个文件(pandas / io / json.py,pandas / io / tests / json / test_json_norm.py和doc / source / whatsnew / v0.18.1.txt(在我的rebase之后我也解决了一些冲突)。< / p>

任何建议都表示赞赏。我正在使用pycharm和TortoiseGit。

1 个答案:

答案 0 :(得分:3)

  

我做错了什么?

您直接从主分支(它应该反映upstream/master分支,而不包括其他更改)制作您的PR

  

我该如何解决?

确保您有一个名为upstream的遥控器,引用原始仓库(您已分叉的仓库)

git remote -v
# if needed
git remote add upstream /url/original/repo

然后从upstream/master

创建一个分支
git fetch upstream
git checkout -b myPR upstream/master

最后,樱桃挑选代表你的变化的提交

git cherry-pick myFirstCommit..myCurrentCommit

并从该分支创建一个PR(您可以稍后更新,但在upstream/master之上使用rebase)

After discussion,缺少的步骤为git fetch upstream:OP只与masterorigin/master合作,但这些并不重要:执行PR时,仅upstream/master(原始回购的主要分支)非常重要,您的PR必须在其之上进行重新定位。