一种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]