在git中查找分支是否位于头部

在git中查找分支是否位于头部,git,Git,如果我有一个分支设置,并且我已经远程推送它,以便其他人共享和处理。git中是否有检查我的分支是否位于头部的命令?我假设,如果有人已经将更改从他们的机器提交并推送到远程机器,而我还没有将其拉下来,这意味着我的本地分支没有处于领先地位 我明白了,我能行 git diff testbr origin/testbr 如果返回某个内容,则表示本地testbr不在头部。 或者我也可以这样做,如果 git fetch returns empty update 或 git日志头--单线 是否有一个简单的

如果我有一个分支设置,并且我已经远程推送它,以便其他人共享和处理。git中是否有检查我的分支是否位于头部的命令?我假设,如果有人已经将更改从他们的机器提交并推送到远程机器,而我还没有将其拉下来,这意味着我的本地分支没有处于领先地位

我明白了,我能行

git diff testbr origin/testbr 
如果返回某个内容,则表示本地testbr不在头部。 或者我也可以这样做,如果

git fetch returns empty update

git日志头--单线

是否有一个简单的true或false答案,而不是我解析这些命令的输出。

如果不想获取,则必须解析来自的提交ID。例如,如果你

git ls-remote origin testbr
你可能会看到

728f270f6850706a3ac1990da4c44589eb6d38f7        refs/heads/testbr
您可以在shell中使用来获取第一个字段

要获取本地分支的提交ID,可以使用

因此,在shell脚本中,您只需比较提交ID:

[ `git ls-remote origin testbr | cut -f1` == `git rev-parse testbr` ]
如果你愿意先去拿,那你就去拿吧

[ `git rev-parse testbr` == `git rev-parse origin/testbr` ]

旁注:通常的git工作流假设每个人都按照常识早做pull——在每次本地更改之前,在推动之前。这样,本地活动分支总是最新的。谢谢。这是有道理的。但我是通过一些自动化代码来做的。你不能自动拉吗?谢谢。我在寻找更多的真/假答案。但看起来它不存在。因此,我将使用git日志头和git fetch。
[ `git ls-remote origin testbr | cut -f1` == `git rev-parse testbr` ]
[ `git rev-parse testbr` == `git rev-parse origin/testbr` ]