Your branch is up to date with 'origin/master'.但是本地代码却不是最新的

我在master分支运行git status或者git checkout master,提示Your branch is up to date with 'origin/master'.,从字面上的意思是说当前分支已经是最新的。但是,当我运行git pull的时候,却获取到了很多更新,这是怎么回事呢?
在这里插入图片描述

原因是,当你运行git status的时候,他只是去检查本地的orgin/master的ref信息,如果当前分支和这个ref信息是一致的,就会提示没有更新,因为git设计之初为了尽可能减少网络请求和传输,并不会所有操作都去对比最新的远程信息,因此就出现了这个情况。如果想要一探究竟,可以先运行git fetch查看远程与本地是否有差异,不过,我一般都是直接运行git pull,远程没有更新的话就不会有反应,有更新的话就会直接把远程更新拉下来。

但是碰到个问题,当我从master切换到dev的时候,竟然就直接提示我dev不是最新的。我猜想这个原因应该是,git pull会获取所有分支的远程ref信息,因此我再次切换分支的时候,就提示有代码没有更新。
在这里插入图片描述

sf上的回答,可以参考:

https://stackoverflow.com/questions/27828404/why-does-git-status-show-branch-is-up-to-date-when-changes-exist-upstream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值