当前位置: 首页 > news >正文

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;

三、安装步骤

  1. 安装 commitizen
npm install commitizen -D
  1. 安装cz-conventional-changelog
npm install cz-conventional-changelog -D
  1. 配置package.json
"config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
}

如图所示:

在这里插入图片描述

  1. package.json中添加一个指令,如commit:
"commit": "git-cz"

如图所示:

在这里插入图片描述

  1. 运行该指令:
 npm run commit

如图所示:
在这里插入图片描述
这里我提交的是一个bug的修复,选择fix:
在这里插入图片描述
在这里插入图片描述
说明:

feat: 新增一个功能
fix: 修复bug
docs: 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等
style: 仅仅修改了空格、格式缩进等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复bug
perf: 优化相关,比如提升性能、体验
test: 测试用例,包括增加缺失用例或者修正测试用例
  1. 安装conventional-changelog-cli
npm install -S conventional-changelog-cli
  1. 在项目根目录下新建CHANGELOG.md,如图所示:

在这里插入图片描述

  1. package.json 添加指令
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",

如图:
在这里插入图片描述

  1. 运行命令:
npm run changelog

生成的日志如下图:
在这里插入图片描述

相关文章:

  • 使用Python和p5.js创建的迷你游戏示例,该游戏包含多个屏幕和动画,满足在画布上显示图像、使用键盘命令移动图像
  • [GHCTF 2025]SQL??? 【sqlite注入】
  • java中过滤器
  • 反码与补码
  • 【阿里云】控制台使用指南:从创建ECS到系统诊断测评
  • (base)user1@ubuntu:~$pip install xxxx(xxxx表示第三方库) 分析
  • Centos7系统遇到的第一个问题 yum
  • 【面试】框架
  • ngx_regex_create_conf
  • Git(一)
  • leetcode hot100--动态规划【五步总纲】
  • 文本对抗样本系列的论文阅读笔记(整理合订)
  • 学习笔记11——并发编程之并发关键字
  • ArcGIS Pro中字段的新建方法与应用
  • 从新手到专家:嵌入式代码空间优化技巧
  • C++ Primer Plus第十二章课后习题总结
  • 【二分算法】-- 三种二分模板总结
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.2基于Painless脚本的日志告警
  • 空指针异常的触发
  • 论文阅读分享——UMDF(AAAI-24)
  • 习近平就乌拉圭前总统穆希卡逝世向乌拉圭总统奥尔西致唁电
  • 商务部召开全国离境退税工作推进会:提高退税商店覆盖面,扩大入境消费
  • 悬疑剧背后的女编剧:创作的差异不在性别,而在经验
  • 人形机器人灵犀X2掌握新技能:有了“内心戏”,还会拳脚功夫
  • 南京江宁区市监局通报:盒马一批次猕猴桃检出膨大剂超标
  • 创同期历史新高!1至4月全国铁路发送旅客14.6亿人次