更新 origin/master 分支而不检查该分支

update origin/master branch without checking that branch out

我假设:

git fetch origin

将更新所有远程分支:

remotes/origin/master
remotes/origin/dev

等等

但事实证明似乎并非如此,如果不是这样的话,我无法弄清楚这些分支是如何保持最新的。

如何确保我的本地远程分支是最新的?也许我会有更好的运气:

git fetch origin master:master

?

一般来说,git fetch origin更新origin/*下的所有远程跟踪名称。在什么情况下您没有看到这种情况发生?现代有两种常见的情况 Git:

  • 一个单分支克隆将一个上游分支映射到一个远程跟踪名称。如果那不是你想要的,请避免单分支克隆(或将它们转换为普通克隆)。

  • 运行 git fetch origin master,例如,将更新限制为仅更新 origin/master,即使 dev 在 [=15] =] 有新的提交会更新 origin/dev 如果你有 运行 git fetch origin 而不是 git fetch origin master.

第二种情况一直由 git pull 驱动,如果您使用它的话。 (我建议避免 git pull 以支持单独的获取和第二个命令,根据需要变基或合并。)

最后一种情况在 1.8.2 之前的 Git 版本中很常见,例如 git fetch origin master 甚至无法更新 origin/master。解决方案是升级到现代 Git.