前言
团队中有部分人的 commit 信息比较随意,因此想用工具来进行约束, web 项目可以使用 commitizen 来实现, 但是 golang 又该用什么来约束呢, 在 Github 上找到 commitizen-go 可以做为 commitizen 平替,但该说明文档都是针对 mac、linux 用户的,另外没有中文配置,所以想在这里提供说明。
操作说明 windows
-
安装对应 exe 文件
go install github.com/lintingzhen/commitizen-go@latest
提示,若出现无法安装,可以使用 GOPROXY 加速 go install
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
-
运行命令检测是否成功
commitizen-go
提示没有该命令,将 C:\Users<你的用户名>\go\bin 配置到环境变量中
-
配置命令别名、
若已经安装 commitize, 就不能配置 cz造成冲突,因此要配置另外一个
git config --global alias.czgo '!commitizen-go'
我这里配置 git czgo, 若没有 cz 冲突则可以直接配置成 cz,如果要只是当前项目生效则可以去掉 --global 即可。
-
配置中文配置文档
- 全局配置 (C:\Users<你的用户名>)下配置, 优先级最低
- 项目配置,优先级高
需要创建 .git-czrc.json 文件在你需要的目录下,填写如下内容
{"message": {"items": [{"name": "type","desc": "请选择提交类型:","form": "select","options": [{ "name": "feat", "desc": "✨ feat: 新功能" },{ "name": "fix", "desc": "🐛 fix: 修复缺陷" },{ "name": "docs", "desc": "📝 docs: 文档更新" },{ "name": "style", "desc": "💄 style: 格式调整(空格、缩进等)" },{ "name": "refactor", "desc": "♻️ refactor: 重构代码" },{ "name": "perf", "desc": "⚡️ perf: 性能优化" },{ "name": "test", "desc": "✅ test: 添加测试" },{ "name": "chore", "desc": "🔧 chore: 构建过程或辅助工具变动" },{ "name": "revert", "desc": "⏪ revert: 回滚提交" },{ "name": "WIP", "desc": "🚧 WIP: 正在进行中工作" }],"required": true},{"name": "scope","desc": "影响范围(模块/文件夹名等):","form": "input"},{"name": "subject","desc": "简短描述(以祈使句撰写):","form": "input","required": true},{"name": "body","desc": "详细描述(可选):","form": "multiline"},{"name": "footer","desc": "备注(如 BREAKING CHANGE / 关闭 Issue 等):","form": "multiline"}],"template": "{{.type}}{{with .scope}}({{.}}){{end}}: {{.subject}}{{with .body}}\n\n{{.}}{{end}}{{with .footer}}\n\n{{.}}{{end}}"}
}
保存即可。
- 在运行命令检测是否正常
git czgo