【问题标题】:How do I retrieve git version info showing upstream state如何检索显示上游状态的 git 版本信息
【发布时间】:2020-05-15 09:55:05
【问题描述】:

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

我要添加的是当前分支是否与上游存储库不同步的指示。也就是说,开发人员已经承诺到他们的本地 repo 很好,但是来自尚未推送的源的构建应该被标记为这样。

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

【问题讨论】:

    标签: git version versioning


    【解决方案1】:

    添加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'
    

    【讨论】:

    • 这很有帮助。有没有办法判断我们是领先还是落后于上游?
    • 是的,使用git merge-base --is-ancestor HEAD HEAD@{upstream},非零返回码表示你落后了,所以如果它们不相等并且你没有落后,那么你就领先了,或者你是表亲。
    • 最后一个问题:git fetch 只是迂腐的善良,还是必不可少的?我想可能是后者,因为没有它你可能不知道上游是否发生了变化,但我只是想确定一下。
    • 就是这样:fetch 从远程的分支提示更新本地存储库的跟踪引用(与所有 Git 一样,您可以配置映射和选择,默认值几乎总是您想要的)并获取任何新内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2022-08-05
    • 1970-01-01
    相关资源
    最近更新 更多