我当时的假设是:
git fetch origin
将更新所有远程分支:
remotes/origin/master
remotes/origin/dev
等
但事实并非如此,如果不是这种情况,我无法弄清楚这些分支如何保持最新状态。
如何确保我的本地远程分支机构是最新的?也许我会有更好的运气:
git fetch origin master:master
?
答案 0 :(得分:1)
通常,git fetch origin
将更新origin/*
下的所有远程跟踪名称。在什么情况下您看不到这种情况发生?现代Git中有两种常见情况:
一个单分支克隆将一个上游分支映射到一个远程跟踪名称。如果那不是您想要的,请避免使用单分支克隆(或将其转换为普通克隆)。
运行git fetch origin master
会将更新限制为仅更新origin/master
,即使dev
上的origin
有新的提交也可以更新origin/dev
(如果您运行的是git fetch origin
而不是git fetch origin master
。
如果使用第二种情况,则始终由git pull
驱动。 (我建议避免使用git pull
,而建议分别提取和第二条命令,根据需要重新设置基数或合并。)
最后一种情况在1.8.2之前的Git版本中很常见,例如git fetch origin master
甚至无法更新origin/master
。解决方案是升级到现代Git。