合并从官方仓库到本地仓库的特定提交

时间:2013-07-17 03:46:39

标签: git github merge fetch pull

假设1月1日,我分叉(origin)并克隆(本地)github仓库(upstream)。我在X上创建了一个分支master。并且,开始致力于X。随着时间的推移,我一直将提交推送到origin

我一直在origin master upstream更新master的{​​{1}}。 (通过我当地的回购)。

当我创建分支master时,X上存在错误,因此,X目前存在此错误。最近,upstream的主分支更新了一个提交错误修复的提交。

我的问题是:如何将此特定提交提取到我的X

master&的{p> upstream个分支origin都已更新。

1 个答案:

答案 0 :(得分:0)

您有3个选项:

  1. X重新投放到upstream/master
  2. upstream/master合并到X
  3. Cherry-选择特定提交(我们称之为<sha fix>)到X
  4. 在选择其中任何一项之前,请务必先从上游获取更改:

    # First fetch upstream/master
    $ git fetch upstream
    

    然后,这里有各种选项的命令:

    衍合

    $ git rebase upstream/master X
    

    合并

    # With X checked out
    $ git merge upstream/master
    

    樱桃拾取

    # With X checked out
    $ git cherry-pick <sha fix>
    

    一般情况下,我建议使用rebase使分支与其上游分支同步,但您可能决定要使用merge。我建议不要使用cherry-pick,因为如果您最终要将X合并回master,您最终会重复提交,这会导致代码回归有些情况。

相关问题