当前位置: 首页 > 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

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


http://www.mrgr.cn/news/93944.html

相关文章:

  • cu118 安装vllm 极简教程 踩坑笔记
  • [pytest] 配置
  • 【08】单片机编程核心技巧:变量命名规范
  • DeepSeek大语言模型下几个常用术语
  • 创建Electron35 + vue3 + electron-builder项目,有很过坑,记录过程
  • 【模拟CMOS集成电路设计】带隙基准(Bandgap)设计与仿真(基于运放的电流模BGR)
  • 从0开始的操作系统手搓教程43——实现一个简单的shell
  • 【SpringMVC】深入解析@ RequestMapping 注解的概念及使用和 MVC 介绍
  • QT多线程
  • 代码随想录刷题day41|(二叉树篇)二叉树的最大深度(递归)
  • 【前端】BOM DOM
  • 打造智能钉钉机器人:借助智谱GLM-4-Flash实现高效智能回复(文末附源码)
  • 打造智能聊天体验:前端集成 DeepSeek AI 助你快速上手
  • 我的AI工具箱Tauri版-建筑平面图生成装修设计
  • 个人学习编程(3-10) 刷题
  • Jetson Orin 安装 onnxruntime
  • LSTM方法实践——基于LSTM的汽车销量时序建模与预测分析
  • 基金股票期权期货投资方式对比
  • 软考 数据通信基础——信道
  • 【SoC基础】第2节:CPU简介