如何为当前分支以外的分支显示“git状态”?

How to show `git status` for branches other than the current one?

要了解分支相对于远程分支 and/or 的领先程度,可以使用 git status 命令。

但是git status只显示当前分支的状态

看来想了解一下同目录下其他分支的状态,需要切换到各个分支再运行git status

然而,切换分支并不总是可行的,因为当前分支可能不干净。

有什么办法可以不用切换到其他分支就可以知道其他分支的状态吗?

您应该可以执行以下操作来临时设置远程跟踪分支

git branch -u <remote>/<branch>

然后git status会显示你需要的。

编辑:您可能想要这样的东西(请参阅第一个答案中的脚本)Show git ahead and behind info for all branches, including remotes

直接回答您在标题中提出的问题:您不能 运行 git status 在其他分支。 git status 向您展示了两个关键信息:您如何更改索引(如何暂存更改)与分支上的最新提交不同,以及您如何更改工作目录并进行更改你还没有上演

换句话说,status 向您显示了 HEAD 与索引的组合差异以及索引与工作目录的差异。因此只有在当前分支上获得 git status 的等价物才有意义,因为它考虑了索引和工作目录。

考虑到这个警告,听起来您只对 ahead/behind 计数感兴趣,并且您希望与其上游相比其他分支的 ahead/behind 计数。

尽管 ahead/behind 计数是 git status 显示为某种辅助信息的内容之一,但它是查找当前分支的 ahead/behind 计数的最简单方法,因为您注意到了。

要为 所有 分支显示 ahead/behind,您可以使用 the helpful script in this answer.

git status --branch yourLocalBranch

https://git-scm.com/docs/git-status