你必须知道的软件开发规范
2021-10-08
软件版本控制规范
目前 git 较为主流,仅介绍git相关流程规范。git flow 和 github flow
git-flow
git-flow 是一个 git 扩展集,按 Vincent Driessen 的分支模型提供高层次的库操作。
一图胜千言

GitHub flow
GitHub 流是一个轻量级、基于分支的工作流,支持定期进行部署的团队和项目。https://guides.github.com/introduction/flow/ 解释了 GitHub 流程的工作原理和原因。
流程就是
- 创建分支
- 提交代码
- 创建合代码请求 PullRequest
- 讨论和代码审查
- 合并代码
参考资料
- git-flow:
- GitHub flow:
软件版本号规范
软件的更新迭代是常态,软件依赖更是需要严格控制版本号,为什么要约定以及如何约定版本号规范,这里有答案《语义化版本 2.0.0》 https://semver.org/,如果你使用 git 做版本控制,那么版本号通常是 tag 名,同时,release通常从 tag 中选取,并丰富修改内容。
语义化版本控制的规范是由 Gravatars 创办者兼 GitHub 共同创办者 Tom Preston-Werner 所建立。
简略归纳几点:
- 版本号
必须同时记录到文件中。例如 php 的 composer.json version字段,node 的 package.json 字段。 - 版本号
必须采用 X.Y.Z 格式,X、Y 和 Z 为非负的整数,且禁止在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须以数值来递增。例如:1.9.1 -> 1.10.0 -> 1.11.0。 - 版本号发行软件包之后,任何调整都
必须使用新版本号。 - 开发阶段,主版本号为零,(0.y.z) ,表示非稳定版。
- 1.0.0 表明该版本可公开使用,并且 api 是稳定的。
- 先行版本可以追加,范例:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。
- 版本编译信息可以追加,范例:1.0.0-alpha+001、1.0.0+20130313144700、1.0.0-beta+exp.sha.5114f85。
- 版本优先层级参考,范例:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0。