前言
團隊中有部分人的 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