git规范提交之commitizen conventional-changelog-cli 安装
一、引言
使用规范的提交信息可以让项目更加模块化、易于维护和理解,同时也便于自动化工具(如发布工具或 Changelog 生成器)解析和处理提交记录。
通过编写符合规范的提交消息,可以让团队和协作者更好地理解项目的变更历史和版本控制,从而提高代码维护效率和质量。
二、用到的插件
Commitizen
作用:Commitizen 是一个命令行工具,用于帮助开发者编写符合规范的 Git 提交信息;
功能:提供交互式命令行界面,引导用户填写提交信息。支持多种提交规范(如 Angular Commit Message Conventions)。通过插件(如 cz-conventional-changelog)扩展功能;
使用场景:当你希望团队遵循统一的提交信息格式时,可以使用 Commitizen 来规范提交行为;
cz-conventional-changelog
作用:这是 Commitizen 的一个适配器(adapter),基于 Angular 提交规范;
功能:提供符合 Angular 规范的提交信息模板(如 feat、fix、docs 等类型)。与 Commitizen 配合使用,确保提交信息格式统一;
使用场景:当你使用 Commitizen 时,可以通过 cz-conventional-changelog 来定义提交信息的格式;
conventional-changelog-cli
作用:用于根据 Git 提交历史自动生成变更日志(Changelog),帮助开发者自动创建清晰且一致的 CHANGELOG.md 文件,从而简化了软件发布过程中手动维护变更记录的繁琐工作;
功能:解析符合规范的提交信息,生成格式化的 Changelog 文件(如 CHANGELOG.md);
使用场景:当你需要为项目生成版本更新日志时,可以使用此工具;
三者之间的关系
Commitizen 是核心工具,用于规范提交信息;
cz-conventional-changelog 是 Commitizen 的插件,定义了提交信息的格式(基于 Angular 规范);
conventional-changelog-cli 是一个独立的工具,用于根据提交历史生成 Changelog;
三、安装步骤
- 安装 commitizen
npm install commitizen -D
- 安装cz-conventional-changelog
npm install cz-conventional-changelog -D
- 配置package.json
"config": {"commitizen": {"path": "./node_modules/cz-conventional-changelog"}
}
如图所示:
- package.json中添加一个指令,如commit:
"commit": "git-cz"
如图所示:
- 运行该指令:
npm run commit
如图所示:
这里我提交的是一个bug的修复,选择fix:
说明:
feat: 新增一个功能
fix: 修复bug
docs: 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等
style: 仅仅修改了空格、格式缩进等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复bug
perf: 优化相关,比如提升性能、体验
test: 测试用例,包括增加缺失用例或者修正测试用例
- 安装conventional-changelog-cli
npm install -S conventional-changelog-cli
- 在项目根目录下新建CHANGELOG.md,如图所示:
- package.json 添加指令
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
如图:
- 运行命令:
npm run changelog
生成的日志如下图: