如何显示非当前分支的`git status`?

zlwx9yxi  于 2023-04-19  发布在  Git
关注(0)|答案(3)|浏览(127)

要了解一个分支与其远程分支相比领先和/或落后多少,可以使用git status命令。
但是git status只显示当前分支的状态。
看起来要了解同一目录中其他分支的状态,我需要切换到每个分支并再次运行git status
然而,切换分支并不总是可能的,因为当前分支可能不干净。
有没有办法不切换到其他分支就能知道其他分支的状态?

6jygbczu

6jygbczu1#

直接回答你在标题中提出的问题:你不能在其他分支中运行git statusgit status显示了两个关键信息:你是如何改变了索引(你是如何暂存的改变),这些改变与你的分支上最近的提交不同,以及你是如何改变了工作目录,并做出了你没有暂存的改变。
换句话说,status显示了HEAD到索引的组合差异和索引到工作目录的组合差异。因此,在当前分支上获得git status的等价物才有意义,因为它考虑了索引和工作目录。
有了这个警告,听起来好像您只对提前/落后计数感兴趣,并且您希望与上游相比,其他分支的提前/落后计数。
尽管提前/落后计数是git status显示的辅助信息之一,但正如您所指出的,它是查找当前分支的提前/落后计数的最简单方法。
要显示 * 所有 * 分支的前/后,可以使用the helpful script in this answer

wko9yo5t

wko9yo5t2#

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

git branch -u <remote>/<branch>

然后git status将显示您需要的内容。
编辑:你可能想要这样的东西代替(见第一个答案中的脚本)Show git ahead and behind info for all branches, including remotes

ewm0tg9j

ewm0tg9j3#

git status --branch yourLocalBranch

详细说明:https://git-scm.com/docs/git-status

相关问题