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

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.kler.cn/a/581588.html

相关文章:

  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(27)混元幡遮天机 - 第一个错误版本(二分边界)
  • golang从入门到做牛马:第十四篇-Go语言结构体:数据的“定制容器”
  • CSS中相对定位使用详情
  • 力扣热题 100:贪心算法专题经典题解析
  • 【干货教程】在Windows计算机部署DeepSeek大模型,给在实验室无外网的同事们用(基于Ollama和OpenWebUI)
  • Java直通车系列23【Spring Boot】(了解 Spring Boot 概念与优势)
  • Camel AI Owl + 阿里云QWQ 本地部署
  • Ubuntu 下 nginx-1.24.0 源码分析 (1)
  • 桂云OSG:桂链是什么?
  • Html5学习教程,从入门到精通, HTML5 Canvas 全攻略:从入门到精通(19)
  • 《苍穹外卖》SpringBoot后端开发项目核心知识点整理(DAY1 to DAY3)
  • 使用外挂工具,简化教师资格面试的纸质试题打印操作
  • 探秘 CSS 盒子模型:构建网页布局的基石
  • Leetcode 55: 跳跃游戏
  • 物联网时代的车队管理系统阐述
  • 【2025】Electron 基础二(进程模型三大核心)
  • 【ISP】ISP的pipeline的几种关键算法
  • 封装AJAX(带详细注释)
  • OWL: 适用于现实任务自动化的多智能体协作框架
  • 版本控制器Git(1)