语义化版本与 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