"分支是最新的来源"但实际上不是

时间:2016-02-03 20:27:08

标签: git

邮件是否有点误导?

当结帐分支(例如,b535)时,git会执行此操作并说"您的分支机构与&origin / b535'最新。 " 这听起来像我在本地分支b535中的内容是最新的。

$ git checkout b535
Previous HEAD position was 8aa0145... master - resyns
Switched to branch 'b535'
Your branch is up-to-date with 'origin/b535'.

但实际上它不是。在执行git pull时,它从远程发现更新并更新本地分支。

$ git pull origin b535
remote: Counting objects: 39, done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 39 (delta 31), reused 0 (delta 0)
Unpacking objects: 100% (39/39), done.
...

2 个答案:

答案 0 :(得分:10)

好吧,你的分支是最新的已知原点/ b535位置。如果您希望git status无需git pull即可为您提供更准确的信息,请改为git fetch。这将更新origin / b535,而无需更改本地b535。

答案 1 :(得分:3)

这是因为Git只能知道它下载了什么。您origin/b535的本地副本可能与您的origin遥控器保持同步,也可能不是最新的。

您需要手动git fetch以确保您的原始分支与您的Git服务器同步... Git不会使用status命令自动为您执行此操作。

对于最新的状态命令,您可以定义如下别名:

[alias]
    rstatus = "!git fetch && git status"