
mdomke/git-semvergit-semver是一款从git标签生成符合语义化版本(SemVer)规范的工具。它解决了git describe输出非SemVer兼容、版本排序异常等问题,能够根据git仓库的标签和提交历史,自动生成合规的版本号,适用于通过git标签进行软件版本管理的场景。
<major>.<minor>.<patch>核心结构及预发布标识、构建元数据dev.N)和提交哈希的开发版本(如3.5.2-dev.22+baf822dd)git describe输出无法正确排序的问题,确保版本号符合SemVer precedence规则通过Docker容器运行git-semver,需挂载当前git仓库目录至容器内的/git-semver路径:
sh# 生成当前仓库的语义化版本号 docker run --rm -v $(pwd):/git-semver mdomke/git-semver
参数说明:
--rm:容器退出后自动删除-v $(pwd):/git-semver:将当前目录(git仓库根目录)挂载到容器内的工作目录,确保工具能访问git仓库数据通过命令行选项控制版本输出格式,常用选项如下:
| 选项名 | 描述 |
|---|---|
-format | 自定义格式字符串(包含x/y/z/p/m,分别对应主/次/补丁/预发布/元数据) |
-no-minor | 排除次要版本及后续组件(仅保留主版本) |
-no-patch | 排除补丁版本及后续组件(保留主+次版本) |
-no-pre | 排除预发布标识及后续组件 |
-no-meta/-no-hash | 排除构建元数据(如提交哈希) |
-prefix | 为版本号添加前缀(如v) |
-set-meta | 设置自定义构建元数据 |
sh# 基本使用:生成包含预发布标识和哈希的版本 docker run --rm -v $(pwd):/git-semver mdomke/git-semver # 输出示例:3.5.2-dev.22+baf822dd # 排除构建元数据 docker run --rm -v $(pwd):/git-semver mdomke/git-semver -no-meta # 输出示例:3.5.2-dev.22 # 仅保留主版本和次版本 docker run --rm -v $(pwd):/git-semver mdomke/git-semver -no-patch # 输出示例:3.5 # 添加前缀并排除哈希 docker run --rm -v $(pwd):/git-semver mdomke/git-semver -prefix v -no-hash # 输出示例:v3.5.2 # 设置自定义元数据 docker run --rm -v $(pwd):/git-semver mdomke/git-semver -set-meta custom # 输出示例:3.5.2+custom
git-semver基于git标签生成版本,标签需符合以下格式:
<major>.<minor>.<patch>(如1.2.3)v前缀(如v2.3.0)1.1.0-rc3)示例标签创建:
shgit tag v2.0.0-rc1 # 创建带预发布标识的标签
git-semver与git describe的输出对比:
git describe 输出 | git-semver 输出 |
|---|---|
| 3.5.1-22-gbaf822d | 3.5.2-dev.22+baf822dd |
| 4.2.0-rc.3-5-gfcf2c8f | 4.2.0-rc.3.dev.5+fcf2c8fd |
| 1.0.1 | 1.0.1 |
(注:git-semver会自动递增补丁版本,并添加dev.N预发布标识,其中N为自上次标签后的提交数)


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务