为什么不显示“git status”在分支中未提交提交?
一切都在标题中...
我读过这个问题:查看未压缩的Git提交
但我不明白为什么git status
显示主分支中所有未提交的提交,但不显示其他分支中的任何内容。
有人可以解释吗?
编辑
以下是我做的/得到的命令和输出:
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
为什么我的提交在使用git status
时不显示?
原因是您的主分支实际上有一个远程分支,在您的分支已设置为跟踪的原产地/主分支上。
这意味着每次你做一个提交主,然后做一个git status
git会告诉你哪些提交在你的本地分支和远程分支之间是不同的。
当您创建新分支时,默认情况下没有相应的远程分支。 你可以通过做git branch -a
来看到。 这会向您显示所有设置的远程分支。
所以有两件事:
1)您的本地分支没有远程分支2)您的分支未设置为跟踪远程分支的更改
制作远程分支并为本地分支设置跟踪的一种简单方法是将本地分支推送到远程分支:
git checkout new_feature
git push -u origin new_feature
通常情况下,当您只需按下-u
开关时,将不会设置跟踪,但您的分支仍将被推送。 但是当你传入-u
开关时,它会告诉git你还想设置你的分支来跟踪远程分支的变化。
当你这样做,然后做出改变并提交它们,然后做一个git status
你会得到预期的结果“你的分支是一个提交的原产地/ new_feature的头”
上一篇: Why doesn't "git status" display unpushed commits in a branch?
下一篇: Show git ahead and behind info for all branches, including remotes