git describe 生成版本号

语义化版本与 git describe

清晰的 tag 版本信息,不但有助于发布版本的选择和回滚,同时能十分方便的查看到分支的版本提交进度。

# git describe master --tags
v0.5.1-220-g10623a702

它表明,本地 master 分支当前 commit hash 为 10623a702。

git describe

如果符合条件的tag指向最新提交则只是显示tag的名字
否则会有相关的后缀来描述该tag之后有多少次提交以及最新的提交commit id

# git describe master
v0.4.0-80-gcae24a22

这个字符串可以作为快照的名字,方便人们理解。
1、80:表示自打tag v0.4.0以来有80次提交(commit)
2、gcae24a22:g 为git的缩写,在多种管理工具并存的环境中很有用处
3、cae24a22:表示为最新提交的commit id 前几位

复杂点的命令,就是多加入一些参数:

# git describe --always --match=NeVeRmAtCh --dirty
cae24a22-dirty
  • –always
    Show uniquely abbreviated commit object as fallback.
    会获取最近的 commitID

  • –match
    仅考虑与给定模式匹配的标记
    如下举例,如果没有匹配到,就会去掉前面的tag和提交次数等信息:

    # git describe --always  --dirty
    v0.4.0-80-gcae24a22-dirty
    # git describe --always --match=Ne
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章