为什么"git status"不显示分支中的未提交提交?

Aur*_*ien 20 git git-status

一切都在标题中......

我读到了这个问题:查看Unpushed Git提交

但我不明白为什么git status在master分支中显示所有未提交的提交,但在其他分支中不显示任何内容.

有人可以解释一下吗?

编辑

这是我做/得到的命令和输出:

aurelien@server:/home/repo/$ git branch
  new_feature
* master

aurelien@server:/home/repo/$ git checkout new_feature
Switched to branch 'new_feature'

aurelien@server:/home/repo/$ echo test > newfile.txt
aurelien@server:/home/repo/$ git add newfile.txt
aurelien@server:/home/repo/$ git commit -m "Test commit"
[new_feature 51c6a64] Test commit
1 file added
aurelien@server:/home/repo/$ git status
# On branch new_feature
nothing added to commit
Run Code Online (Sandbox Code Playgroud)

使用时为什么我的提交没有出现git status

arn*_*rhs 22

原因是您的主分支实际上有一个远程分支,在您的分支已设置为跟踪的origin/master上.

这意味着每次你提交掌握,然后做一个git statusgit会告诉你本地分支和远程分支之间的提交是不同的.

创建新分支时,默认情况下没有相应的远程分支.你可以这样看git branch -a.这将显示所有设置的远程分支.

所以有两件事情在起作用:

1)您没有本地分支的远程分支2)您的分支未设置为跟踪远程分支的更改

为本地分支建立远程分支和设置跟踪的一种简单方法是将本地分支推送到远程分支:

git checkout new_feature
git push -u origin new_feature
Run Code Online (Sandbox Code Playgroud)

通常情况下,当您只是在没有-u开关的情况下推动时,不会设置跟踪,但仍会推送您的分支.但是当你传入-u交换机时,它会告诉git你还想设置你的分支来跟踪远程分支的变化.

执行此操作然后进行更改并提交它们之后,执行一次操作,git status您将得到"您的分支是1个提交的起源/ new_feature"的预期结果