首页 > 解决方案 > 更新 origin/master 分支而不检查该分支

问题描述

我的假设是:

git fetch origin

将更新所有远程分支:

remotes/origin/master
remotes/origin/dev

等等

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

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

git fetch origin master:master

?

标签: gitgit-pullgit-fetch

解决方案


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

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

  • git fetch origin master例如,Running将更新限制为仅更新origin/master,即使devonorigin有新的提交,origin/dev如果您使用 rungit fetch origin而不是git fetch origin master.

git pull如果您使用它,则第二种情况一直由 驱动。(我建议避免git pull支持单独的 fetch 和 second-command,根据需要重新设置或合并。)

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


推荐阅读