3c1a-git-commit规范化提交和生成日志

Huxzhi大约 1 分钟

git commit 最佳实践 commitizen + husky + commitlint 规范化校验

  • commitizen:使用 git cz 代替 git commit,引导用户填写规范的 commit 信息
  • husky + commitlint:git commit 动作时,校验 commit 信息,如果不满足 commitizen 规范,无法提交

Semantic commit 与 Changelog 生成

教学案例 https://github.com/zuoxiaobai/commitizen-practice-demoopen in new window

Node.js 环境下可以使用:

根据 commit 信息生成 changelog

standard-version(自动生成、打 tag)

npm run version 更新版本号会直接提交,导致且 commit 信息就是版本号,不符合 commitizen 规范。导致手动生成 log 时,会是空白。standard-versionopen in new window  就很好的解决了这个问题。安装后,只需要 npm run release,就可以有 npm run version 的功能,而且提交信息是标准的 commitizen 规范,而且自动生成 changelog 自动打 tag,自动 commit。你只需要 push 即可。

需要注意的是:CHANGELOG.mdopen in new window 是追加写入内容的,如果你之前没有对应的内容或删了之前的内容,会导致生成的内容较少,或者不完整。