git 分支上的状态不显示本地回购和远程回购之间的区别

git status on branch don't show difference between local repo and remote repo

在 master 分支中进行任何提交并使用 git status 后,它告诉我 origin 领先于 master 并且需要推送。

On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working directory clean

但是当在分支中提交并在检查分支时使用 git status 时,它没有区分源和分支之间的区别。

On branch test-01
nothing to commit, working directory clean

我使用 git checkout -b test-01 创建了分支 test-01,并将其推送为 git push origin test-01 并且它有多个提交。

有时我忘记了我在分支中所做的提交,所以我没有推送它们。有没有办法像 master 分支一样跟踪本地和远程回购之间的区别?

您需要跟踪上游分支,因为当前未跟踪这些分支:

$ git checkout test-01
$ git branch -u origin/test-01

或者如果您不想将上下文切换到要为其设置跟踪的分支,您可以直接完成 shorthand:

$ git branch -u origin/test-01 test-01

这会将您的本地 test-01 分支设置为跟踪 origin/test-01 分支。

设置正确的跟踪后,您应该能够使用以下命令查看本地和远程分支之间的跟踪关系:

$ git branch -vv

Documentation on git-branch

尝试 运行:

git branch -u origin/test-01 test-01

您忘记告诉 git 跟踪远程 test-01 分支。记得在第一次推送到远程分支时添加一个标志 -u,就像这样:

$ git push -u origin test-01

当您的本地分支已经存在远程分支时,您可以执行以下操作:

$ git branch -u origin/test-01