我从来没有能够得到这个问题的明确答案.
很长一段时间,在同事的建议下,我一直这样做:
git fetch origin
git pull origin <mybranch>
Run Code Online (Sandbox Code Playgroud)
我被告知(并且已经看过)git pull如果你不先做的话,表现不一样git fetch.您没有得到任何远程更改.
但我在网上看到的git pull就是相当于git fetch其后的东西git merge.如果这是真的,那git pull将包括git fetch,我不需要明确的git fetch第一个,对吗?但事实似乎并非如此.
所以我正在寻找的是一些描述观察到的行为的明确文档git pull.(我知道我可能也会提出很多建议切换到git fetch→ git merge;这也很好,但我真的很感兴趣git pull.)
tor*_*rek 15
我们应该把它作为副本关闭,但在此之前,让我看看我是否可以挤进去.
虽然git pull真的是 git fetch后面git merge(或git rebase)时,精确的不同之处在于如何 git pull运行git fetch.
特别:
$ git pull
要么:
$ git pull remote-name branch-name
(或各种类似的变体)运行,不是简单的git fetch,不是,但是.git fetch remote-namegit fetch remote-name branch-name
这有更少的区别,因为Git版本1.8.4,比该版本之前所做的:
git fetch origin master不同git fetch origin或git fetch没有更新refs/remotes/origin/master; 这是一个早期的设计决策,可以保持远程跟踪分支的更新是可预测的,但实际上事实证明,人们发现只要有机会就机会性地更新它们会更方便,而且当我们运行git push已经破坏时我们一直在更新它们无论如何,最初的"可预测性".
换句话说,如果git pull决定运行git fetch origin master,这将origin/master在您的存储库中更新- 但前提是您没有运行古老版本的Git,例如某些未命名的Linux发行版中包含的版本.
如果您运行git fetch origin,您将更新所有远程跟踪分支(假设您有一个合理的配置,即使在所述古老版本的Git中也是默认配置).如果你运行git fetch origin master,你只会得到origin/master更新,并且只有当你的Git不是太过于荒谬时才会再次更新.由于git pull运行四字变体,它只更新一个甚至没有远程跟踪分支.
| 归档时间: |
|
| 查看次数: |
6958 次 |
| 最近记录: |