【问题标题】:git fetch and subsequent merge does not do the same as git pull - Why?git fetch 和随后的合并与 git pull 不一样 - 为什么?
【发布时间】:2014-09-08 05:24:28
【问题描述】:

很可能我在这里遗漏了一些东西。

为什么

git fetch origin master

输出

remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From https://github.com/groupschoof/PhyloFun
 * branch            master     -> FETCH_HEAD

以及后续

git merge origin/master

给出输出

Already up-to-date.

虽然

git pull origin master

会

From https://github.com/groupschoof/PhyloFun
 * branch            master     -> FETCH_HEAD
Updating c6bd22b..234cd22
Fast-forward
 R/geneOntologySQL.R |   77 ++++++++++[rest of line omitted]
 1 file changed, 30 insertions(+), 47 deletions(-)

简而言之,为什么git pull origin master 会触发合并获取的补丁,而组合的git fetch origin master 和随后的git merge origin/master 不会?

请多多指教!

干杯!

【问题讨论】:

    标签: git github


    【解决方案1】:

    简而言之,为什么git pull origin master 会触发合并获取的补丁,而组合的git fetch origin master 和随后的git merge origin/master 不会?

    首先,从 git 1.8.4 开始,git fetch 将始终更新 origin/master 以及 FETCH_HEAD:参见“git fetch, FETCH_HEAD and origin/master”。
    这意味着git merge origin/master 将始终返回Already up-to-date 消息。

    其次,git pull 是当前本地 分支(不是远程跟踪分支)上的git fetch + git merge:它合并到master,而不是origin/master。

    问题中看到的(快进)合并是正在更新的master 分支。

    【讨论】:

      猜你喜欢
      • 2020-01-31
      • 2017-02-23
      • 2011-09-11
      • 2011-03-22
      • 2022-06-14
      • 2017-06-30
      • 2021-08-17
      • 1970-01-01
      相关资源
      最近更新 更多