更新源/主分支而不检查分支

时间:2018-07-16 02:40:26

标签: git git-pull git-fetch

我当时的假设是:

git fetch origin

将更新所有远程分支:

remotes/origin/master
remotes/origin/dev

但事实并非如此,如果不是这种情况,我无法弄清楚这些分支如何保持最新状态。

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

git fetch origin master:master

1 个答案:

答案 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。