【问题标题】:What's difference netween git fetch B + git merge B VS git merge origin/Bnetween git fetch B + git merge B VS git merge origin/B 有什么区别
【发布时间】:2016-11-10 14:53:07
【问题描述】:

git fetch B + merge B 和 merge origin/B 有什么区别?

$ git fetch origin develop
From [...]
 * branch            develop    -> FETCH_HEAD
$ git merge develop
Already up-to-date.
$ git merge origin/develop
error: Your local changes to the following files would be overwritten by merge
...

在上述序列中,我希望合并输出相同,但结果不同。我希望“获取”命令在本地检索远程分支,以便它可用于本地合并操作。提取完成后,我希望本地分支的合并与原点合并的操作相同。我的期望错了吗?

【问题讨论】:

    标签: git merge fetch git-merge git-fetch


    【解决方案1】:

    Fetch 仅下载提交,但不会将它们应用到您的本地分支副本。为了使这两个操作等效,您需要先将 origin/B 与(本地)B 合并。如果您不这样做,则本地 B 的 HEAD 不会更改,并且分支将位于“后面”原点(您可以通过在签出本地 B 时运行 git status 或运行 git branch -vv 来验证这一点)。

    请注意,这与 git checkout B 与 git checkout origin/B 的差异相同。

    【讨论】:

      【解决方案2】:
      • git fetch origin develop

        将远程上的develop 分支获取到您的远程分支origin/develop(本地存在)

      • git merge develop

        将本地develop 分支合并到当前分支。假设您当前已签出 develop,这不会做任何事情。

      • git merge origin/develop

        将本地origin/develop 分支合并到当前分支。 origin/develop 指的是develop 在远程origin 的本地存储库中的远程分支。这将合并您在第一步中获取的分支。

      【讨论】:

      • 忘了说,我在 feature/XXX 分支
      猜你喜欢
      • 2022-12-16
      • 2020-07-27
      • 2021-03-19
      • 2018-07-05
      • 2012-02-22
      • 2011-12-20
      • 2020-03-05
      • 1970-01-01
      相关资源
      最近更新 更多