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

【Git 】规范 Git 提交信息的工具 Commitizen

Commitizen是一个用于规范Git提交信息的工具,它旨在帮助开发者生成符合一定规范和风格的提交信息,从而提高代码维护的效率,便于追踪和定位问题。以下是对Commitizen的详细介绍。

1、Commitizen的作用与优势

  • 规范提交信息:通过提供预定义的提交类型和格式,引导开发者编写清晰、一致的提交信息。
  • 提高代码维护效率:规范的提交信息有助于快速理解每次提交的目的和内容,减少后续代码审查和信息查找的时间。
  • 促进团队协作:统一的提交信息规范有助于团队成员之间的沟通和协作,减少因提交信息不清晰而产生的误解和冲突。

2、Commitizen的使用方法

2.1安装Commitizen

可以通过npm(Node.js的包管理器)来全局或局部安装Commitizen。

2.1.1 全局安装命令为

npm install -g commitizen

2.1.1 局部安装则需要在项目目录下运行

npm install commitizen --save-dev
  • 安装完成后 cz-conventional-changelog 会被默认安装,并且是作为 commitizen 的依赖项安装的。
  • 这意味着你可以直接使用 commitizen 并配置它使用 cz-conventional-changelog 适配器来规范你的 Git 提交信息。
  • 可以在 node_modules中查看, 或者通过 npm list cz-conventional-changelog显示 cz-conventional-changelog 的安装信息,包括它的版本和安装路径。

2.2 配置Commitizen

安装完成后,需要配置Commitizen以使用特定的适配器(Adapter),如cz-conventional-changelog。这通常涉及在项目的package.json文件中添加相关配置,或者创建专门的配置文件(如.czrc)。

2.2.1 全局安装配置

Vue.jsReact 项目根目录中配置 package.json:

{..."scripts": {...},"devDependencies": {...},// 新增 config 配置"config": {"commitizen": {"path": "cz-conventional-changelog"}}
}

2.2.2 局部安装配置

ps: 运行 npm run commit 来代替 git cz 来启动 Commitizen的交互式提交信息填写流程

Vue.jsReact 项目根目录中配置 package.json:

{..."scripts": {..."commit": "cz"},"devDependencies": {...},"config": {"commitizen": {"path": "node_modules/cz-conventional-changelog"}}
}

2.3 使用Commitizen提交信息

  • 配置完成后
    • 可以使用git cz全局安装
    • npm run commit局部安装并配置script)命令来启动Commitizen的交互式提交信息填写流程。
  • 按照提示逐步填写提交信息的各个部分,如提交类型、范围、简短描述、详细描述等。
  • 完成后,Commitizen将生成符合约定格式的提交信息。

3、Commitizen与其他工具的集成

Commitizen可以与其他工具和流程集成,如Git钩子(Hooks)、持续集成(CI)等。通过将这些工具与Commitizen结合使用,可以在提交代码之前自动检查提交信息是否符合规范,从而进一步提高代码质量和维护效率。

4、总结

Commitizen是一个强大的工具,它通过规范Git提交信息来提高代码维护效率并促进团队协作。

通过简单的安装和配置,开发者就可以在项目中使用Commitizen来生成符合规范的提交信息。

此外,Commitizen还支持自定义和扩展功能,以满足不同项目的需求。

对于希望提高代码质量和团队协作效率的开发者来说,Commitizen是一个值得尝试的工具。

5、扩展

当你全局安装 commitizen 时,它的可执行文件被添加到了系统的 PATH 环境变量中。这意味着你可以在任何命令行窗口中直接访问 commitizen 命令,包括使用 git cz 别名(如果 commitizen 安装过程中设置了这个别名)。

然而,当你局部安装 commitizen(即在项目内部通过 npm 安装)时,它的可执行文件只会被添加到项目的 node_modules/.bin 目录中。这个目录通常不会被自动添加到 PATH 环境变量中,因此你不能直接在命令行窗口中访问 commitizen 命令,除非你使用 npm 脚本来调用它。

通过在 package.jsonscripts 字段中添加一个脚本,如下所示:

"scripts": {  "commit": "cz"  
}

你创建了一个 npm 脚本,该脚本会调用局部安装的 commitizen。这样,当你运行 npm run commit 时,npm 会知道去 node_modules/.bin 目录中查找 cz 命令并执行它。

总结来说,全局安装的 commitizen 可以在任何地方直接访问,而局部安装的 commitizen 需要通过 npm 脚本来访问,因为它只被添加到了项目的 node_modules/.bin 目录中。

相关文章:

【Git 】规范 Git 提交信息的工具 Commitizen

Commitizen是一个用于规范Git提交信息的工具,它旨在帮助开发者生成符合一定规范和风格的提交信息,从而提高代码维护的效率,便于追踪和定位问题。以下是对Commitizen的详细介绍。 1、Commitizen的作用与优势 规范提交信息:通过提供…...

ABB PPC902AE1013BHE010751R0101控制器 处理器 模块

ABB PPC902AE1013BHE010751R0101 该模块是用于自动化和控制系统的高性能可编程控制器。它旨在与其他自动化和控制设备一起使用,以提供完整的系统解决方案 是一种数字输入/输出模块,提供了高水平的性能和可靠性。它专为苛刻的工业应用而设计&#xff0c…...

大模型AIGC转行记录(一)

自从22年11月chat gpt上线以来,这一轮的技术浪潮便变得不可收拾。我记得那年9月份先是在技术圈内讨论,然后迅速地,全社会在讨论,各个科技巨头、金融机构、政府部门快速跟进。 软件开发行业过去与现状 我19年决定转码的时候&…...

element-ui Tree之懒加载叶子节点强制设置父级半选效果

效果: 前言: 我们是先只展示一级的,二级的数据是通过点击之后通过服务器获取数据,并不是全量数据直接一起返回回来的。 问题: 当你设置了默认选中的子节点,但是由于刚进入页面此时tree中数据暂是没有这个…...

Java项目:基于SSM框架实现的高校共享单车管理系统分前后台【ssm+B/S架构+源码+数据库+开题报告+任务书+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的高校共享单车管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…...

【Android】自定义换肤框架02之自定义AssetManager和Resource

ResourceId是如何变成对应Resource的 在上一章中,我们已经讲过,apk中有个资源索引文件 其中保存了每个资源对应的id,name,type,path 资源文件的解析,主要涉及两个类,AssetManager和Resource …...

熵权法、熵值法、熵权TOPSIS三种方法的实用场景及优劣比较

在统计分析与决策分析中,熵权法、熵值法和熵权TOPSIS是三种常用的基于信息熵理论的方法。这些方法在处理多属性或多指标决策问题时,能够客观地反映数据的内在特性和各指标的相对重要性,为科学决策提供了有力支持。 熵权法 实用场景 熵权法是一种基于信息熵的客观赋权方法…...

无人机人员搜救

人员搜救-水域救援 水域搜救:快速水面搜查 物资抛投:救生物资抛投 绳索牵引:牵引救援绳索 领航船艇:水面侦察领航 人员搜救 昼夜搜救,精准定位 水域搜救 经纬 M300 RTK 搭载禅思 H20T 能够满足全天候作业需求&a…...

目标检测算法

讯飞星火 目标检测算法是计算机视觉领域的一项核心技术,用于在数字图像或视频中识别和定位一个或多个特定对象实例。这些算法通常需要确定对象的位置(例如通过边界框)和类别(例如人、汽车、狗等)。以下是一些流行的目…...

SpringSecurity 三更草堂学习笔记

0.简介 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因为相比与Spring…...

鸿蒙生态应用开发白皮书V3.0

来源:华为: 近期历史回顾:...

CSS - 深入理解选择器的使用方式

CSS基本选择器 通配选择器元素选择器类选择器id 选择器 通配选择器 作用:可以选中所有HTML元素。语法: * {属性名;属性值; }举例: /* 选中所有元素 */ * {color: orange;font-size: 40px; }在清除样式方面有很大作用 元素选择器…...

动手学深度学习(Pytorch版)代码实践 -循环神经网络-54~55循环神经网络的从零开始实现和简洁实现

54循环神经网络的从零开始实现 import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l import matplotlib.pyplot as plt import liliPytorch as lp# 读取H.G.Wells的时光机器数据集 batch_size, num_steps 32, …...

Python酷库之旅-第三方库Pandas(006)

目录 一、用法精讲 10、pandas.DataFrame.to_excel函数 10-1、语法 10-2、参数 10-3、功能 10-4、返回值 10-5、说明 10-6、用法 10-6-1、数据准备 10-6-2、代码示例 10-6-3、结果输出 11、pandas.ExcelFile类 11-1、语法 11-2、参数 11-3、功能 11-4、返回值 …...

智慧矿山:EasyCVR助力矿井视频多业务融合及视频转发服务建设

一、方案背景 随着矿井安全生产要求的不断提高,视频监控、数据传输、通讯联络等业务的需求日益增长。为满足矿井生产管理的多元化需求,提高矿井作业的安全性和效率,TSINGSEE青犀EasyCVR视频汇聚/安防监控综合管理平台,旨在构建一…...

Unix/Linux shell实用小程序1:生字本

前言 在日常工作学习中,我们会经常遇到一些不认识的英语单词,于时我们会打开翻译网站或者翻译软件进行查询,但是大部分工具没有生词本的功能,而有生字本的软件又需要注册登陆,免不了很麻烦,而且自己的数据…...

springboot2.7.6 集成swagger

在 Spring Boot 2.7.6 版本中集成 Swagger 的步骤相对直接,主要涉及添加依赖、编写配置以及在控制器中添加文档注解几个环节。 下面是集成 Swagger 的基本步骤: 1. 添加依赖 首先,在pom.xml文件中添加 Swagger 相关依赖。 对于 Spring Boot…...

面试篇-系统设计题总结

文章目录 1、设计一个抢红包系统1.1 高可用的解决方案:1.2 抢红包系统的设计1.3 其他 2、秒杀系统设计 这里记录一些有趣的系统设计类的题目,一般大家比较喜欢出的设计类面试题目会和高可用系统相关比如秒杀和抢红包等。欢迎大家在评论中评论自己遇到的题…...

如何摆脱反爬虫机制?

在网站设计时,为了保证服务器的稳定运行,防止非法数据访问,通常会引入反爬虫机制。一般来说,网站的反爬虫机制包括以下几种: 1. CAPTCHA:网站可能会向用户显示CAPTCHA,要求他们在访问网站或执行…...

68745

877454...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

微服务通信安全:深入解析mTLS的原理与实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...