一种GIT版本号管理策略

命名格式

版本号的命名格式为:

主版本号.次版本号[-发布进程版本号]-修订版本号-发布分支头SHA1 ID

管理策略

主版本号(Major)和次版本号(Minor):

主版本号对应大的、全局功能更新,而次版本号对应小的、局部的功能更新。主、次版本号根据实际情况设定。

发布进程版本号(release):

用于标识发布进程的版本号后缀,使用alpha(内部测试),beta(公共测试)和rc(release candidate,发布候选)加上数字作为次版本号的后缀,比如alpha1,alpha2,beta1,beta2,rc1,rc2等。

修订版本号:

标识自上次标定主次版本号以来的bugfix次数。修订版本号不涉及功能更新。每次重新标定主、次版本号(还可能有发布进程版本号)之后,修订版本号重置,从0开始重新计数。

发布分支头sha1:

标识该版本对应的发布分支头提交的sha1摘要,方便通过版本号回溯git代码库中的commit。

实现

主、次、发布进程版本号,根据项目实际情况确定,确定之后在发布分支上打标签以记录版本号:

1
$ git tag -a v1.0-rc1 -m 'version 1.0 release candidate 1'

修订版本号和发布分支头sha1 id通过git命令describe来自动生成:

1
$ git describe --tags --long

最后会生成如下格式的版本号:

1
v1.0-rc1-10-g742aee8

此版本号的含义为:主版本号为1,次版本号为0,发布进程版本号为rc1,修订版本号为10,也就是主、次、发布进程版本号设定之后又进行了10次bugfix,发布分支头为742a3ee8这个commit对象。

构建

在自动构建脚本中调用git describe命令来自动生成版本号,并自动记录到应用程序中,最后发布的应用程序就有了明确的、易于追溯的版本号。

===
[erq]