nodejs学习: git-cz/commitizen/changelog

优雅统一的 git message
更新于: 2022-09-21 13:52:53

大概做了啥

git-cz 标准化 git message

安装

这个安装方法有问题,推荐 “另一种安装方法”

# 这里安装一次就行了
npm install -g commitizen

# 这个是安装到项目里
npm install --save-dev git-cz

配置 package.json

用 “另一种安装方法” 也不需要这个配置了,在 .czrc 里配置即可以

{
  "config": {
    "commitizen": {
      "path": "git-cz"
    }
  }
}

运行 git cz

另一种安装方法

github issue 里看到的: https://github.com/commitizen/cz-cli/issues/558

# Faced the same issue. You can enforce this globally as mentioned within the README. Here's a one-liner fix:
npm install -g commitizen cz-conventional-changelog && echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
# 添加配置 .czrc,内容如下<这个在dotfiles里也不需要再添加了>
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
echo '{ "path": "cz-conventional-changelog" }' > .czrc

我的 .czrc 设置如下

放在项目中的好处是,让项目成员都使用这个规范,统一。

{
  "path": "cz-conventional-changelog",
  "defaultScope": "repository",
  "defaultBody": ""
}

几个工具的学习

  • commitizen
  • cz-conventional-changelog

commitizen

全局安装对应的位置: /Users/aric.zheng/.nvm/versions/node/v16.15.0/lib/node_modules/commitizen

提供了以下命令: cz,最简单的,推荐在项目中使用

对应的 gihub 项目: https://github.com/commitizen/cz-cli

bin 文件显示对应的有效命令行

cz-conventional-changelog

A commitizen adapter for the angular preset of https://github.com/conventional-changelog/conventional-changelog

简单来讲: 一个针对 anguar preset 预设的 cz 实现。

angular preset 是什么

Must be one of the following:

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  • refactor: A code change that neither fixes a bug nor adds a feature
  • perf: A code change that improves performance
  • test: Adding missing or correcting existing tests
  • chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
type: commit 的类型
feat: 新特性
fix: 修改问题
refactor: 代码重构
docs: 文档修改
style: 代码格式修改, 注意不是 css 修改
test: 测试用例修改
chore: 其他修改, 比如构建流程, 依赖管理.
scope: commit 影响的范围, 比如: route, component, utils, build...
subject: commit 的概述, 建议符合 50/72 formatting
body: commit 具体修改内容, 可以分为多行, 建议符合 50/72 formatting
footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接.

总结 git-cz 基础使用

个人认为的最佳实践:工具安装一次,配置针对项目,保证每个项目成员都使用一致的规范。

  • 安装:  全局安装 commitizen cz-conventional-changelog
  • 在项目中添加 .czrc 配置文件
# 全局安装
npm install -g commitizen cz-conventional-changelog
# 添加配置文件
echo '{ "path": "cz-conventional-changelog" }' > .czrc

参考