git配置git commit -m “fix 11,22: 修改bugid为11,22“

文章目录

  • 前言
  • 一、报错提示
  • 二、实现
    • 1.commitlint.config.js规范配置
    • 2. **修改正则表达式**:
    • 3. **移除 scope-case 规则**:
    • 4. **增强自定义规则逻辑**:
      • 测试结果:
      • 正则表达式详解:


前言

提示:正常的配置git规范看这篇配置即可;我的是在此规范上新加了一个要求

一、报错提示

要求:
以下可正常提交

git commit -m "fix: 修复按钮样式"
git commit -m "fix 11: 修复bug的id为11"
git commit -m "fix 11,22: 修复bug的id为11,22"

以下报错禁止提交

git commit -m "fix abc: 输入了非数字的范围"

报错提示:
在这里插入图片描述

二、实现

1.commitlint.config.js规范配置

const config = {parserPreset: {parserOpts: {headerPattern: /^(\w+)(?:\s+([^:]*))?:\s*(.+)$/,headerCorrespondence: ["type", "scope", "subject"]}},ignores: [commit => commit.includes("init")],rules: {"header-max-length": [2, "always", 100],// "scope-case": [2, "always", ["lower-case", "upper-case", "numeric"]], // 允许非数字scope;避免与自定义规则冲突"subject-empty": [2, "never"],"subject-case": [2, "always", ["lower-case", "sentence-case", "start-case", "pascal-case", "upper-case"]],"subject-full-stop": [2, "never", "."],"type-empty": [2, "never"],"type-case": [2, "always", "lower-case"],"type-enum": [2, "always", ["feat", "fix", "style", "perf", "docs", "refactor", "test"]],"scope-issue-format": [2, "always"]},plugins: [{rules: {"scope-issue-format": parsed => {const { type, scope } = parsed// console.log("%c【" + "参数" + "】打印", "color:#fff;background:#0f0", parsed, type, scope)// 1. 如果没有 scope(传统格式),直接通过if (!scope) return [true]// 2. 验证 scope 格式(数字或逗号分隔的数字)if (/^\d+(,\d+)*$/.test(scope)) {return [true]}// 3. 检查类型是否正确(避免类型错误时显示错误信息)const validTypes = ["feat", "fix", "style", "perf", "docs", "refactor", "test"]if (!validTypes.includes(type)) {return [true] // 让 type-enum 规则处理类型错误}// 4. 如果 scope 存在但不符合数字格式,显示错误return [false, `类型格式错误!必须是以下格式之一:\n` + `- 基础类型: "${validTypes.join('", "')}"\n` + `- scope格式为数字: "fix 123" 或 "fix 111,222"`]}}}]
}export default config

2. 修改正则表达式

headerPattern: /^(\w+)(?:\s+([^:]*))?:\s*(.+)$/
  • 现在可以匹配任何非冒号字符作为 scope
  • 支持以下格式:
    • fix: 描述 (scope 为 null)
    • fix 123: 描述 (scope 为 “123”)
    • fix abc: 描述 (scope 为 “abc”)
    • fix 111,222: 描述 (scope 为 “111,222”)

3. 移除 scope-case 规则

  • 因为我们现在允许非数字 scope(但会在自定义规则中验证)
  • 避免与自定义规则冲突

4. 增强自定义规则逻辑

  • 首先检查是否有 scope(传统格式直接通过)
  • 然后验证 scope 是否为数字格式
  • 最后检查类型是否正确(避免类型错误时显示错误信息)

测试结果:

# 正确格式
git commit -m "fix: 传统格式"
# 输出: 成功git commit -m "fix 123: 单issue格式"
# 输出: 成功git commit -m "fix 111,222: 多issue格式"
# 输出: 成功# 错误格式
git commit -m "fix abc: 非数字scope"
# 输出:
# Scope 格式错误!必须是数字或用逗号分隔的数字,例如:123 或 111,222
# 您输入的 scope: "abc" 不符合要求git commit -m "feat 123,abc: 混合格式"
# 输出:
# Scope 格式错误!必须是数字或用逗号分隔的数字,例如:123 或 111,222
# 您输入的 scope: "123,abc" 不符合要求

正则表达式详解:

^(\w+)               // 匹配类型(如 "fix")
(?:\s+([^:]*))?      // 非捕获组:一个或多个空格 + 任何非冒号字符(作为 scope)
:\s*                 // 冒号后跟零个或多个空格
(.+)$                // 匹配剩余部分作为描述

这个配置确保:

  1. 所有格式都能被正确解析(包括错误格式)
  2. 自定义规则能够正确验证 scope 格式
  3. 提供清晰、具体的错误信息
  4. 保持与传统格式的兼容性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89525.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nastools继任者?极空间部署影视自动化订阅系统『MediaMaster』

nastools继任者?极空间部署影视自动化订阅系统『MediaMaster』 哈喽小伙伴们好,我是Stark-C~ 对于我们NAS玩家来说,观影总是大家绕不开的一个执念,并且为观影的折腾大家也都是乐此不疲~ 曾经有一个非常绝绝子的观影神器摆在我们…

题解:CF1690G Count the Trains

思路: 首先我们可以理清一下各种情况:1)m可能为02)一次操作时,只需要考虑每节火车的车头。3)当一节火车的速度降低时,只会影响它及它后面的车厢当m0时,我们可以记录上一节车头的速度…

CCF编程能力等级认证GESP—C++3级—20250628

CCF编程能力等级认证GESP—C3级—20250628单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)奇偶校验分糖果单选题(每题 2 分,共 30 分…

2G和3G网络关闭/退网状态(截止2025年7月)

从能打语音电话的2G,到能发彩信、聊QQ的3G,这两项陪伴了我们数十年的通信技术,正在悄然退出历史舞台。近日,全球移动供应商协会(GSA)发布的《2025年7月2G和3G网络关闭报告》显示,全球已有超百个…

Day06_C语言网络编程20250718mobus重点

01.思维导图1 什么是 modbus他是一个在工控领域非常好用的通信写 modbus协议本质上是一个 基于 tcp 协议二次封装的一个协议 什么叫做基于tcp二次封装的协议:我们自己写的pack_t(无论静态还是动态),都是属于二次封装的协议modbus协议是一种 “主从问答式…

比亚迪古德伍德亮相:从技术突破到文化对话

近日,比亚迪携腾势Z9GT、方程豹豹5、腾势D9亮相英国古德伍德速度节——全球最具声望的汽车文化盛典。方程豹豹5搭载全球首个 DMO电驱越野平台,在爬山赛道上展现出媲美性能跑车的动力响应与精准控制,彻底打破“越野必靠大排量燃油机”的西方传…

UniApp TabBar 用户头像方案:绕过原生限制的实践

需求场景: 在 UniApp 项目中,需要将 TabBar 首页项 (index) 的图标替换为当前用户的网络图片,并实现: 放大且圆形显示。点击该图标时,页面滚动回顶部。切换到其他分类时,首页 Tab 项恢复为普通首页图标。 尝…

如何阅读Spring源码

如何阅读Spring源码 简介 最近有许多人问我如何阅读Spring源码,那我便在这给出阅读源码的方法,能够保证本地能够让源码能够运行起来。 Spring 源码环境本地编译 Gradle下载地址 通过网盘分享的文件:gradle-6.4.1-all.zip 链接: https://pan.b…

Excel导出实战:从入门到精通 - 构建专业级数据报表的完整指南

文章目录Excel导出实战:从入门到精通 - 构建专业级数据报表的完整指南引言:ExcelJSFileSaver如何映射到Excel操作一、ExcelJS核心架构解析 - 从文件结构理解1. 工作簿(Workbook)模型 - 相当于整个Excel文件2. 工作表(Worksheet)配置 - 相当于单个工作表设…

PyTorch图像预处理全解析(transforms)

1. 引言在深度学习计算机视觉任务中,数据预处理和数据增强是模型训练的关键步骤,直接影响模型的泛化能力和最终性能表现。PyTorch 提供的 torchvision.transforms 模块,封装了丰富的图像变换方法,能够高效地完成图像标准化、裁剪、…

slam中的eskf观测矩阵推导

在之前的《slam中的eskf推导》一文中,没有写观测矩阵 H 矩阵的过程,现在补上这部分。前置列举几个等下推导需要用到的一些点:平面特征点构造观测矩阵例如在 fastlio 中,是利用平面特征点到拟合平面的距离来构造观测方程&#xff0…

Python_2

逻辑判断 首先得首先&#xff0c;我们想判断一个逻辑的正确与否&#xff0c;一定是需要一个能够表现出逻辑的词 如果我只说一个1 2&#xff0c;那么大家都不知道我在说什么但是如果我说1<2,那么大家就能判断这个语句的正确与否了 下面是几个常用的逻辑词 < 小于>大于&…

Liunx-Lvs配置项目练习

1.实验环境配置Lvs调度器有两块网卡 一块仅主机和一块nat网卡&#xff0c;客户端nat模式&#xff0c;两台服务器为仅主机模式2.集群和分布式简介集群与分布式系统简介集群 (Cluster)集群是指将多台计算机(通常为同构的)通过高速网络连接起来&#xff0c;作为一个整体对外提供服…

T5(Text-to-Text Transfer Transformer) 模型

下面是对 T5&#xff08;Text-to-Text Transfer Transformer&#xff09; 模型的详细介绍&#xff0c;包括其原理、架构、训练方式、优势与局限&#xff0c;以及与其他模型&#xff08;如 BERT、GPT&#xff09;的对比。一、T5 是什么&#xff1f;T5&#xff08;Text-to-Text T…

PostgreSQL技术大讲堂 - 第97讲:PG数据库编码和区域(locale)答疑解惑

PostgreSQL从入门到精通系列课程&#xff0c;近100节PG技术讲解&#xff0c;让你从小白一步步成长为独当一面的PG专业人员&#xff0c;点击这里查看章节内容。 PostgreSQL从入门到精通课程&#xff0c;持续更新&#xff0c;欢迎加入。第97讲&#xff1a;PostgreSQL 数据库编码…

【IEEE独立出版 】第六届机器学习与计算机应用国际学术会议(ICMLCA 2025)

第六届机器学习与计算机应用国际学术会议&#xff08;ICMLCA 2025&#xff09; 大会简介 第六届机器学习与计算机应用国际学术会议(ICMLCA 2025)定于2025年10月17-19日在中国深圳隆重举行。本届会议将主要关注机器学习和计算机应用面临的新的挑战问题和研究方向&#xff0c;着力…

对于编码电机-520直流减速电机

编码电机的介绍 编码器是一种将角位移或者直线位移转换成一连串电数字脉冲的一种传感器。我们可以通过编码器测量电机转动的位移或者速度信息。 编码器按照工作原理&#xff0c;可以分为增量式编码器和绝对式编码器&#xff0c;绝对式编码器的每一个位置对应一个确定的数字码&a…

Rust入门之并发编程基础(三)

Rust入门之并发编程基础&#xff08;三&#xff09; 题记&#xff1a;6月底7月初&#xff0c;结束北京的工作生活回到二线省会城市发展了&#xff0c;鸽了较久了&#xff0c;要继续坚持学习Rust&#xff0c;坚持写博客。 背景 我们平时使用计算机完成某项工作的时候&#xf…

一文读懂循环神经网络—深度循环神经网络(DRNN)

目录 一、从 RNN 到 DRNN&#xff1a;为什么需要 “深度”&#xff1f; 二、DRNN 的核心结构 1. 时间维度&#xff1a;循环传递 2. 空间维度&#xff1a;多层隐藏层 3. 双向 DRNN&#xff08;Bidirectional DRNN&#xff09; 三、DRNN 的关键挑战与优化 1. 梯度消失 / 爆…

磁悬浮轴承系统中由不平衡力引发的恶性循环机制深度解析

磁悬浮轴承系统中由不平衡力引发的 “振动-激励-更大振动”恶性循环 是一个典型的 正反馈失控过程,其核心在于 传感器信号的污染 与 控制器对真实位移的误判。以下是其逐步演进的原理详解: 恶性循环的触发与演进 1:不平衡力的产生(根源) 转子存在质量偏心,质心(CM)偏离…