【问题标题】:After rebasing my github fork, commits from others are in my pull request在我的 github fork 变基后,其他人的提交在我的拉取请求中
【发布时间】:2017-03-17 17:17:50
【问题描述】:

我创建了一个 github 分支并进行了一些更改,然后创建了一个拉取请求。经过一些修改后,我做了一些额外的更改并重新设置了我的 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 后也解决了一些冲突)。

感谢任何建议。我正在使用 pycharm 和 TortoiseGit。

【问题讨论】:

    标签: git github conflict rebase


    【解决方案1】:

    我做错了什么?

    您直接从 master 分支进行 PR(应该反映 upstream/master 分支,不包括其他更改)

    我该如何解决它

    确保您有一个名为 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(原始 repo) 很重要,你的 PR 必须在它之上重新建立。

    【讨论】:

    • 然后我就永远不会变基我的公关,而只会变基我的上游?
    • @nickpick 你绝对会在上游/master 之上重新设置你的 pr 分支。
    • 但是为什么其他人的更改不会传播回我的公关,我会再次遇到同样的问题?
    • @nickpick 不,您不会:您的 PR 将仅使用您的 pr-branch 提交更新,因为 if 将基于最近更新的上游/master。
    • 太好了,成功了。远程上游可用。看起来当我在 intellij/pycharm 中创建一个新分支时,它链接到 origin/master 而不是上游/master,这使事情变得更加复杂。将来需要手动完成
    猜你喜欢
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 2012-02-17
    • 2011-07-18
    • 2017-05-26
    • 2011-05-05
    相关资源
    最近更新 更多