本文目录导读:

开源项目的版本标签规范命名通常遵循 语义化版本控制(Semantic Versioning,简称 SemVer),这是最广泛使用的标准,根据项目类型(如软件库、应用、前端模块等),还有一些补充规范。
核心标准:语义化版本控制(SemVer)
格式为:主版本号.次版本号.修订号(v1.2.3)。
- 主版本号(MAJOR):当你做了不兼容的 API 修改。
- 示例: 从
v1.x.x升级到v2.0.0时,旧代码可能无法运行。
- 示例: 从
- 次版本号(MINOR):当你做了向下兼容的功能性新增。
- 示例: 从
v1.1.0升级到v1.2.0,旧功能不变,新增了一个特性。
- 示例: 从
- 修订号(PATCH):当你做了向下兼容的问题修正。
- 示例: 从
v1.2.0升级到v1.2.1,修复了一个 Bug,无新功能。
- 示例: 从
关键规范:
- 版本号前通常加
v: 这是 Git 标签的惯例,v1.2.3,但有些项目(如 npm 包)内部可能省略v,标签仍保留。 - 版本号必须严格递增:
v1.2.3之后不能是v1.2.2。 - 一旦发布,就不能修改标签内容: 不能对已发布的
v1.2.3重新打包,必须发布v1.2.4。 y.z是初始开发阶段: 主版本为 0 表示项目尚未稳定,任何更改都可能不兼容,通常用户在x版本时不会预期稳定 API。
扩展规范:预发布版本与构建元数据
用于标记正式版之前的测试版、候选版等。
格式:主版本号.次版本号.修订号-预发布标识符+构建元数据(v1.0.0-alpha.1、v2.0.0-rc.2)。
- 预发布标识符:
alpha:内部测试版,功能不完全,bug 很多。beta:公测版,功能基本完成,用于收集用户反馈。rc:候选发布版(Release Candidate),功能与正式版一致,用于最终测试,若无重大问题即转为正式版。dev:每日构建或开发中版本。snapshot(常用于 Java/Maven):表示不稳定快照,可被覆盖。
- 命名规则: 预发布标识符后通常跟递增的数字,如
-alpha.1、-beta.2,数字用于区分同一阶段的多个版本。 - 优先级: 预发布版本的优先级低于对应的正式版。
v1.0.0-alpha<v1.0.0-rc<v1.0.0。
示例:
v1.0.0-alpha.1
v1.0.0-alpha.2
v1.0.0-beta.1
v1.0.0-rc.1
v1.0.0 // 正式版
v1.0.1
v1.1.0
v2.0.0-alpha.1
其他常见命名规范
| 类别 | 标签示例 | 说明 |
|---|---|---|
| 里程碑/大版本 | v1.0.0, v2.0.0 |
遵循 SemVer,是稳定、正式的发布。 |
| 补丁/热修复 | v1.0.1, v1.0.2 |
针对旧版本的紧急 Bug 修复。 |
| 长期支持版 (LTS) | v1.0.0-lts, v2.0.0-lts |
标记会获得长期安全更新支持的版本。 |
| 按日期发布 | v2023.12.01 |
某些应用或工具(如 Go 语言早期版本)使用,不推荐用于库。 |
| 滚动发布 | rolling, latest, stable |
用于指向最新稳定版的移动标签,常与具体版本号标签配合使用。 |
常见错误与最佳实践
- 避免使用
latest或stable作为唯一标签: 这些应该作为指向具体版本(如v1.2.3)的别名,每次新版本发布时更新它,否则无法回溯过去版本。 - 不要重复利用版本号:
v1.2.3发布了,就永远不要对v1.2.3重新打包推送,这是对使用者的基本尊重。 - 对于私有库或企业级项目: 可以增加自定义后缀,但需内部约定,
v1.0.0-hotfix.3。 - 对于前端/JS 库: 严格遵循 SemVer,不要轻易在中版本号中引入破坏性变更,否则会导致生态灾难。
- 对于 CLI 工具(如
git、kubectl): 主版本号常因 CLI 参数的不兼容更改而增加。
一个完整的版本标签生命周期示例
v0.1.0 // 首次发布(不稳定)
v0.2.0-alpha.1 // 下一个大版本的新功能内测
v0.2.0-beta.1 // 公测
v0.2.0 // 稳定版发布
v1.0.0-alpha.1 // 准备第一个稳定主版本
v1.0.0-beta.1
v1.0.0-rc.1
v1.0.0 // 正式发布 v1.0.0
v1.0.1 // 修复一个漏洞
v1.1.0 // 新增一个功能
v2.0.0-alpha.1 // 不兼容的重构开始
...
最终建议: 对于绝大多数开源项目,严格遵循语义化版本控制 就是最好的规范,在发布前使用 alpha、beta、rc 等前缀来标记预发布版本,这样既能清晰地传达版本之间的兼容性,也能让使用者放心升级。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播