如果我有分支设置,我已将其远程推送给其他人共享和处理。在git中是否有命令检查我的分支是否在HEAD?我假设如果某人已经提交并将更改从他们的机器推送到遥控器,我尚未撤下,这意味着我的本地分支机构不在HEAD。
我知道,我可以做到
git diff testbr origin/testbr
如果返回某些内容,则表示本地testbr不在HEAD中。 或者我也可以这样做
git fetch returns empty update
或
git log HEAD..<remoteBr> --oneline
是否有一个简单的真或假答案,而不是我解析这些命令的输出。
答案 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` ]