找出分支是否在git中处于领先地位

时间:2014-10-31 02:21:03

标签: git

如果我有分支设置,我已将其远程推送给其他人共享和处理。在git中是否有命令检查我的分支是否在HEAD?我假设如果某人已经提交并将更改从他们的机器推送到遥控器,我尚未撤下,这意味着我的本地分支机构不在HEAD。

我知道,我可以做到

git diff testbr origin/testbr 

如果返回某些内容,则表示本地testbr不在HEAD中。 或者我也可以这样做

git fetch returns empty update

git log HEAD..<remoteBr> --oneline

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

1 个答案:

答案 0 :(得分:1)

如果您不想获取,则必须从git ls-remote解析提交ID。例如,如果你这样做

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

728f270f6850706a3ac1990da4c44589eb6d38f7        refs/heads/testbr

您可以在shell中使用cut来获取第一个字段。

要获取本地分支的提交ID,您可以使用git rev-parse之类的

git rev-parse testbr

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

[ `git ls-remote origin testbr | cut -f1` == `git rev-parse testbr` ]

如果您愿意先取,那么您可以

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