无需登录 数据私有 本地保存

语义版本计算器 - 正确递增Major/Minor/Patch

12
0
0
0
当前版本

输入语义版本号,选择递增类型

. .
正式版 alpha beta rc 自定义
当前完整版本: 1.2.3
🔴 Major
2.0.0
破坏性变更
🔵 Minor
1.3.0
新功能
🟢 Patch
1.2.4
Bug修复
新版本

点击左侧卡片或下方按钮递增版本

操作历史

暂无操作记录

常见问题与知识点
什么是语义版本(Semantic Versioning)?

语义版本(Semver)是一种软件版本号规范,格式为 MAJOR.MINOR.PATCH(如 2.1.3)。它由三部分组成:

  • MAJOR(主版本号):当你做了不兼容的 API 修改(破坏性变更)时递增。
  • MINOR(次版本号):当你以向后兼容的方式添加新功能时递增。
  • PATCH(修订号):当你进行向后兼容的 Bug 修复时递增。

该规范由 Tom Preston-Werner(GitHub 联合创始人)提出,现已成为开源社区和企业的通用标准。详见 semver.org

递增 Major 版本后,Minor 和 Patch 会怎样变化?

当递增 Major 版本时(如从 1.5.2 升级),Minor 和 Patch 都会归零。例如:

1.5.2 → 2.0.0

这表示一个全新的主要版本周期开始。同样,递增 Minor 时 Patch 归零(1.5.2 → 1.6.0),递增 Patch 时仅 Patch 加 1(1.5.2 → 1.5.3)。预发布标签也会在递增时被清除,除非你明确保留。

预发布版本(Pre-release)如何使用?

预发布版本用于在正式发布前进行测试,常见标签包括:

  • alpha:内部测试版本,功能可能不完整(如 1.0.0-alpha.1)
  • beta:公开测试版本,功能基本稳定(如 1.0.0-beta.2)
  • rc(Release Candidate):候选发布版本,接近正式版(如 1.0.0-rc.1)

预发布版本的优先级低于对应的正式版本。例如:1.0.0-alpha < 1.0.0。

构建元数据(Build Metadata)是什么?

构建元数据以 + 号连接在版本号末尾,如 1.2.3+build.456。它用于标识构建信息(如 CI 构建号、Git 提交哈希),不影响版本优先级。在版本比较时,构建元数据会被忽略。

0.x.x 版本有什么特殊含义?

0.y.z 版本表示项目处于初始开发阶段。在这个阶段,API 可能随时变化,不保证稳定性。按照语义版本规范,0.x.x 期间的 Minor 版本递增可能包含破坏性变更。当项目足够稳定后,应发布 1.0.0 作为第一个正式版本。

为什么需要语义版本管理?

语义版本管理解决了软件开发中的"依赖地狱"问题:

  • 开发者可以清楚地知道升级某个依赖是否安全(Patch/Minor 升级通常是安全的)。
  • 用户可以根据版本号快速判断更新是否包含破坏性变更。
  • 自动化工具(如 npm、pip、cargo)可以基于语义版本自动管理依赖范围。