【问题标题】:Git version one before latest version最新版本之前的 Git 版本一
【发布时间】:2020-12-20 12:53:53
【问题描述】:

我知道如何使用git describe --tags --abbrev=0 接收最新的 git 版本。但是在我的特殊情况下,我需要之前的版本 ONE。

如果最新版本是v0.0.3,例如我需要获取v0.0.2

我试图找到一种方法,但我的 shell/git 魔法很弱。

【问题讨论】:

    标签: git shell awk


    【解决方案1】:
    git describe --tags --abbrev=0 HEAD^

    HEAD 提交的父级是 HEAD^。使用 --abbrev=0 可以防止将 sha 输出作为描述的一部分,因此只打印第一个找到的标签。

    $ git log --oneline
    63fbe99 (HEAD -> master, tag: v0.0.2) Add c
    3de8c2c Add b
    98b2cc4 (tag: v0.0.1) Add a
    1fe3ea8 (tag: v0.0.0) Initial commit
    
    $ git describe --tags --abbrev=0
    v0.0.2
    
    $ git describe --tags --abbrev=0 HEAD^
    v0.0.1
    

    【讨论】:

    • 对我来说什么都没有改变:xetra11@pop-os:~/Development/projects/CK3-Workbench$ git describe --tags --abbrev=0 0.0.14-alpha xetra11@pop-os:~/Development/projects/CK3-Workbench$ git describe --tags --abbrev=0 HEAD^ 0.0.14-alpha
    • git describe --tags --abbrev=0 v0.0.3~
    【解决方案2】:

    使用awk 以及您的git 命令,请您尝试关注。

    git describe --tags --abbrev=0 | awk 'BEGIN{FS=OFS="."} {$NF-=1} 1'
    

    解释:git 命令的输出作为输入传递给awk 命令。在awk 代码BEGIN 部分将所有行的字段分隔符和输出字段分隔符设置为.。然后在主程序中在当前行的最后一个字段中减少11awk 中打印当前行的方式之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多