如何检索显示上游状态的 git 版本信息

How do I retrieve git version info showing upstream state

我想将版本信息添加到编译成我的可执行文件的文件中。基于 here and here,我使用 git describe 更新构建过程以添加版本号,并且我可以检测是否有未提交的源。

我想添加的是当前分支是否与上游存储库不同步的指示。也就是说,开发人员致力于他们的本地回购是件好事,但是来自尚未推送的源的构建应该被标记为这样。

基本上,我想要相当于 --dirty 的遥控器。

添加一个git fetch并测试git rev-parse HEAD HEAD@{upstream}是否吐出同一个词两次:

git fetch
read mine theirs <<<`git rev-parse HEAD HEAD@{upstream}`
test $mine = $theirs || echo 'not synced'