昨天,我把我在周末工作的一些分支合并成了主人。然后我删除了除主人之外的所有分支。所有这些更改都是在周末完成的,因此我工作计算机中的本地存储库已过时。今天我来上班并跑了git status
,它说
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
然而,我100%确定我在工作的本地回购不是最新的,因为我做了几处修改。运行git pull
后,它下载了我所有的更改,一切正常。
我的问题是:在某些情况下git status
是否有可能告诉您,如果不是,您可以与遥控器保持联系?我不确定这是预期的行为还是git搞砸了。
答案 0 :(得分:4)
git status
不检查实际的远程存储库。它告诉您是否了解远程存储库的本地副本。请记住,origin
是位于计算机上的远程缓存副本,而不是远程存储库本身。
您必须git fetch
更新此本地缓存,之后git status
会告诉您是否落后。
答案 1 :(得分:3)
git如何知道要与哪个分支进行比较?
git不会与实际的远程存储库进行差异。它通过将本地分支与相应的远程引用(例如origin/master
)进行比较来跟踪差异。要获得正确(更新)的git状态,您需要从远程执行fetch
,这将更新远程引用。你可以做到这一点
git fetch origin
git status
然后会给你正确的差异。
当您执行git pull
时,您实际执行的操作是获取后跟合并,这会使您的本地分支与远程主服务器保持同步。如果你愿意,你可以只做一个git fetch
,然后git会告诉你当地主人在远程主人身后有多少次提交。
所以你应该总是从遥控器中取出: