我经常在查找可能有一段时间没有与其repo同步的文件夹时使用git status
,只是为了看看我在哪里。如果我看到your branch is up to date...
,那么我认为可以开始工作和提交。
然而,我刚刚遇到了这种情况:
MINGW64 /path/to/my/project (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
MINGW64 /path/to/my/project (master)
$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From gitlab.mydomain.com/project
f5b203f..4ecb3eb master -> origin/master
Updating f5b203f..4ecb3eb
Fast-forward
CHANGELOG | 1 +
1 file changed, 1 insertion(+)
create mode 100644 CHANGELOG
MINGW64 /path/to/my/project (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
为什么我的第一个git status
命令没有意识到缺少一个文件?
如果相关的话,目前repo中只有两个提交和两个文件。在第二次提交中,我添加了CHANGELOG
文件。
git status
不在本地存储库之外执行任何通信。它只知道您在存储库本地所做的那些事情,以及与指示远程存储库最后已知状态的远程跟踪参考值的一些比较。它实际上并没有更新那些追踪裁判。
要查看服务器上是否有任何新更改,必须先执行git fetch
,然后再执行git status
。
"您的分支是最新的"表示您的本地master
分支与您的本地origin/master
是最新。origin
仅在git fetch
或git pull
(本质上是获取和合并的简写(时更新。
因此,如果你想确保你是最新的远程更改,你应该git fetch
(这只会更新你的origin
分支,不会影响你的本地分支(,然后运行git status
。