Go 项目版本号自动管理,并发布 git tag
💡
原文中文,约2300字,阅读约需6分钟。
📝
内容提要
在开发 Golang 项目时,创建了公共库并通过 git tag 管理版本。为避免手动打 tag 时漏掉 v 前缀,决定自动化版本号更新。通过 Makefile 读取 version.go 中的版本号,自动增加小版本并提交,简化操作。
🎯
关键要点
- 使用 Golang 开发公共库并通过 git tag 管理版本。
- 手动打 git tag 时容易漏掉 v 前缀,导致版本号错误。
- VSCode 中通过 GUI 打 tag 操作繁琐。
- 决定自动化版本号更新以解决手动打 tag 的问题。
- 创建 version.go 文件定义版本号常量,并在 Makefile 中实现自动更新版本号的命令。
- 使用 grep 提取 version.go 中的版本号,使用 sed 更新版本号。
- 只需一行命令 'make tag' 即可自动升级版本号。
- 第二个方案是使用 git tag 命令生成新 tag,但不够直观。
- 倾向于在代码中直接看到当前版本号以便于兼容性处理。
❓
延伸问答
如何在 Golang 项目中管理版本号?
通过 git tag 管理版本号,每次发布新版本时在 git 上打一个 tag。
手动打 git tag 时常见的问题是什么?
容易漏掉 v 前缀,导致版本号错误,可能会在其他项目中找不到对应版本。
如何自动化更新 Golang 项目的版本号?
在项目中创建 version.go 文件,使用 Makefile 读取并更新版本号,只需执行 'make tag' 命令。
Makefile 中如何实现版本号的自动更新?
通过 grep 提取当前版本号,使用 sed 更新 version.go 文件,并提交更改和添加 git tag。
为什么选择在代码中直接定义版本号?
这样可以更直观地看到当前版本号,便于处理兼容性问题。
第二个方案使用 git tag 命令有什么不足?
不够直观,用户需要通过 git 命令查询最新的 tag,而不是直接在代码中查看。
➡️