nodejs学习: git-cz/commitizen/changelog
优雅统一的 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
cz-conventional-changelog
A commitizen adapter for the angular preset of https://github.com/conventional-changelog/conventional-changelog
简单来讲: 一个针对 anguar preset 预设的
cz
实现。
angular preset 是什么
- https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines
- https://www.conventionalcommits.org/en/v1.0.0/
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