git cz 规范化 git commit 格式

news2024/11/25 6:52:20

git cz 规范化 git commit 格式

  1. npm install git-cz --save-dev
  2. npm install commitizen --save-dev
  3. npm install cz-customizable --save-dev
// 这是package.json自动生成的
"config": {
    "commitizen": {
      "path": "./node_modules/cz-customizable"
    },
  }
  1. 根目录新建 .cz-config.cjs
// .cz-config.cjs
module.exports = {
  types: [
    { value: 'update',   name: 'update:   功能开发阶段性提交' },
    { value: 'feat',     name: 'feat:     完整新功能提交' },
    { value: 'fix',      name: 'fix:      修复Bug' },
    { value: 'perf',     name: 'perf:     性能优化(在不影响代码内部行为的前提下,对程序性能进行优化)' },
    { value: 'refactor', name: 'refactor: 代码重构(在不影响代码内部行为、功能下的代码修改)' },
    { value: 'docs',     name: 'docs:     只修改了文档相关的文件(e.g. 修改README.md)' },
    { value: 'style',    name: 'style:    代码风格、不影响代码功能的更改(e.g. 修改空格缩进,换行规范)' },
    { value: 'build',    name: 'build:    影响项目构建或依赖项修改(e.g. 升级webpack到版本5)' },
    { value: 'chore',    name: 'chore:    构建过程、辅助工具等相关的内容修改(e.g. 更新依赖库)' },
    { value: 'revert',   name: 'revert:   恢复上一次提交(e.g. 回滚feat: 增加用户注册功能)' },
  ],

  scopes: [],

  messages: {
    type: '选择一种你提交的类型(必选):',
    scope: '\n自定义更改范围(可选):',
    subject: '短说明(必填):\n',
    body: '长说明, 使用"|"换行(可选):\n',
    breaking: '列举非兼容性的重大变更(可选):\n',
    footer: '关联关闭的issue, 例如: #31, #34(可选)\n',
    confirmCommit: '确认提交?',
  },

  allowBreakingChanges: ['update', 'feat', 'fix'],
};

// 如果 git cz 报错  Unable to find a configuration file,新增一条配置,指定配置文件地址
"config": {
    "commitizen": {
      "path": "./node_modules/cz-customizable"
    },

    // 手动新增
    "cz-customizable": {
      "config": ".cz-config.cjs"
    }
  }

避免绕过 git cz,直接用git commit - m ‘’ 来提交,校验commit message

  1. npm install --save-dev husky
  2. npx husky-init

// 根目录自动生成了.husky文件夹

  1. npm i --save-dev @commitlint/config-conventional @commitlint/cli

  2. package.json 新增scripts

"scripts": {
    "commitlint": "commitlint --config commitlint.config.cjs -e -V"
  },
  1. npx husky add .husky/commit-msg “npm run commitlint”

  2. 根目录新建 commitlint.config.cjs

module.exports = {
  extends: ["@commitlint/config-conventional"],
  rules: {
    "type-enum": [0]
  }
};

现在直接git commit - m ‘随便填’,会报错


项目的package.json(仅供参考)

{
  "name": "integrated-platform",
  "version": "1.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "rimraf dist && vite build",
    "preview": "vite preview",
    "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
    "format": "prettier --write src/",
    "commit": "git-cz",
    "commitlint": "commitlint --config commitlint.config.cjs -e -V",
    "prepare": "husky install"
  },
  "dependencies": {
    "@element-plus/icons-vue": "^2.3.1",
    "@vueuse/core": "^11.0.3",
    "axios": "^1.7.7",
    "crypto-js": "^4.2.0",
    "element-plus": "^2.8.1",
    "js-cookie": "^3.0.5",
    "pinia": "^2.1.7",
    "pre-commit": "^1.2.2",
    "vue": "^3.4.29",
    "vue-router": "^4.3.3"
  },
  "devDependencies": {
    "@commitlint/cli": "^19.4.1",
    "@commitlint/config-conventional": "^19.4.1",
    "@iconify-json/ep": "^1.2.0",
    "@iconify-json/ic": "^1.2.0",
    "@rushstack/eslint-patch": "^1.8.0",
    "@vitejs/plugin-vue": "^5.0.5",
    "@vitejs/plugin-vue-jsx": "^4.0.0",
    "@vue/eslint-config-prettier": "^9.0.0",
    "autoprefixer": "^10.4.20",
    "commitizen": "^4.3.0",
    "cz-conventional-changelog": "^3.3.0",
    "cz-customizable": "^7.2.1",
    "eslint": "^8.57.0",
    "eslint-plugin-vue": "^9.23.0",
    "git-cz": "^4.9.0",
    "husky": "^8.0.0",
    "less": "^4.2.0",
    "lint-staged": "^15.2.10",
    "postcss": "^8.4.45",
    "prettier": "^3.2.5",
    "rimraf": "^6.0.1",
    "tailwindcss": "^3.4.10",
    "unplugin-auto-import": "^0.18.2",
    "unplugin-icons": "^0.19.3",
    "unplugin-vue-components": "^0.27.4",
    "vite": "^5.3.1"
  },
  "lint-staged": {
    "**/*.+(js|jsx|ts|tsx|vue)": [
      "eslint --fix",
      "prettier --write"
    ]
  },
  "engines": {
    "node": "18.3.0"
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-customizable"
    },
    "cz-customizable": {
      "config": ".cz-config.cjs"
    }
  }
}


项目的目录结构(仅供参考)

在这里插入图片描述


mac 系统 husky 钩子不执行

git commit -m '1532'

hint: The '.husky/pre-commit' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
hint: The '.husky/commit-msg' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.

[main af74cc4] 1532
 1 file changed, 1 insertion(+), 1 deletion(-)

husky 没有执行权限,项目终端输入,添加执行权限
chmod +x .husky/*


查看钩子的权限

 ls -l .husky/pre-commit

 // 只有读权限
 -rw-r--r--@ 1 user  admin  74 Sep  7 20:24 .husky/pre-commit

 chmod +x .husky/pre-commit

 // 加了执行权限
 -rwxr-xr-x 1 user group 1234 May 15 14:00 .husky/pre-commit

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

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

相关文章

《OpenCV计算机视觉》—— 图像金字塔

文章目录 什么是图像金字塔?一、定义与基本原理二、主要类型三、构建过程四、应用领域 图像金字塔中的下采样和上采样一、下采样(Downsampling)二、上采样(Upsampling)三、总结 代码实现 什么是图像金字塔?…

[进阶]面向对象之多态(二)

文章目录 多态调用成员的特点多态的优势和弊端 多态调用成员的特点 变量调用:编译看左边,运行也看左边方法调用:编译看左边,运行看右边 多态的优势和弊端 优势: 在多态形式下,右边对象可以实现解耦合,便于扩展和维护定义方法的时候&…

【MySQL】查询表中重复数据、模糊查询列信息、快速copy表数据(1)

一、SQL查询重复的数据: 1、SQL格式: Select * From 数据表 Where 重复记录字段 in ( select 重复记录字段 From 数据表 Group By 重复记录字段 Having Count(重复记录字段)>1) 2、举例: 在这个patient_member_info表中,我们…

kkFileView PDF Image Mode Preview BUG

kkFileView PDF & Image Mode Preview BUG lazyload.js officePicture.ftl pdf.ftl kkFileView getCorsFile?urlPath 会触发SSRF漏洞 kkFileView SSRF-CSDN博客 commonHeader.ftl initWaterMark() 修改代码的工作量,主要是先部署项目,解…

2023年408真题计算机网络篇

https://zhuanlan.zhihu.com/p/6954228062023年网络规划设计师上午真题解析TCP流量计算_哔哩哔哩_bilibili 1 1在下图所示的分组交换网络中,主机H1和H2通过路由器互联,2段链路的数据传输速率为100 Mb/s、时延带宽积 (即单向传播时延带宽&am…

计算机毕业设计 家校互联管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

【Linux实践】实验一:Linux系统安装与启动

【Linux实践】实验一:Linux系统安装与启动 实验目的实验内容实验步骤及结果1. 下载VMware2. 下载 Linux 操作系统3. 在VMware中安装Ubuntu系统4. 配置Ubuntu系统5. 关机 实验目的 1.掌握Linux系统的安装过程和简单配置方法。 2.掌握与Linux相关的多操作系统的安装方…

centos挂载fat32和ntfs文件系统u盘

centos挂载u盘 一、 挂载fat32文件系统u盘1. 查看u盘的文件系统2. 查看系统是否识别到u盘3. 挂载fat32文件系统u盘 二、挂载ntfs文件系统u盘1. 检查u盘文件系统(忽略)2. 查看系统是否识别到u盘3. 挂载ntfs文件系统3.1. 下载ntfs-3g组件3.2. 挂载u盘 一、…

嵌入式day42

framebuffer:帧缓冲、帧缓存 Linux内核为显示提供的一套应用程序接口(驱动内核支持) 分辨率:像素点的总和 像素点: 显示屏:800*600(横向有800个像素点,纵向有600个像素点&#x…

【笔记】1.1 拉伸力-伸长(延伸)曲线和应力-应变曲线

文章目录 拉伸力-伸长(延伸)曲线低碳钢的拉伸力-伸长(延伸)曲线公称应力公称应变真应力真应变公称应力和真应力、公称应变和真应变的关系 应力-应变曲线公称应力-公称应变曲线真应力-真应变曲线 拉伸力-伸长(延伸&…

Unity1 Prefab

修改预设体 进入预设体面板来改 在Hierarchy中可以给预制体添加对象 第一种方法:添加了之后把Hierarchy中的预制体拖到Project中的预制体上 就可以修改原本的预制体 第二种方法:添加了之后在inspector中 点revert 就是重置所有预制体 添加的就没有…

Docker基本管理--Dockerfile镜像制作(Docker技术集群与应用)

容器端口映射; 容器间通信; 容器数据卷; DockerFile; 容器端口映射: 实验环境:紧接着之前的快照,将该文件夹拉取进去; 然后执行导入的脚本,会将该目录下所有打包好的镜像文件导入进入。 然后进…

containerd二进制安装

文章目录 安装版本(截止2024年9月10日)方式1:yum安装(不推荐)设置主机名设置IP获取阿里YUM源查询containerd安装验证与启动服务测试命令 方式2:二进制安装(推荐)安装之前先了解conta…

游戏创作的梦想之地!EE GAMES 创作者社区上线,VipSkill产学研结合迈开重大步伐

EE GAMES 官网 EE GAMES创作者社区 是一个怎样的平台? EE GAMES 创作者社区,是专注于链接每一位游戏创作者,提供全方位服务的游戏领域垂类社区。 这里不仅…

信号完整性仿真中关于铜箔粗糙度的三篇文献

首先放文献: Paul G. Huray. "Surface Roughness", in The Foundations of Signal Integrity. John Wiley & Sons, Inc., Hoboken, New Jersey. 2009. Paul G. Huray. "Impact of Copper Surface Texture on Loss: A model That Works", …

算法工程师重生之第三天( 链表理论基础 移除链表元素 设计链表 反转链表 )

参考文献 代码随想录 一、 链表理论基础 什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向nu…

关于粒子滤波的解析

粒子滤波流程 基本原理:随机选取预测域的 N NN 个点,称为粒子。以此计算出预测值,并算出在测量域的概率,即权重,加权平均就是最优估计。之后按权重比例,重采样,进行下次迭代。 初始状态&#x…

抖音评论区截流脚本软件详细使用教学,抖音私域获客引流的五种方法。

1.先说下什么是抖音截流玩法,截流顾名思义就是在别的博主的视频下面去截流评论潜在流量,然后用评论文案的形式或者其它方式吸引用户加我们的私域~ 玩截流一定不是主动去私信别人,这个就不叫截流了,且一个账号私信多了一定会降权和…

MIT6.824 课程-MapReduce

MapReduce:在大型集群上简化数据处理 概要 MapReduce是一种编程模型,它是一种用于处理和生成大型数据集的实现。用户通过指定一个用来处理键值对(Key/Value)的map函数来生成一个中间键值对集合。然后,再指定一个reduce函数, 它用…

OpenCV-模板匹配

文章目录 一、简介1.定义与原理2.算法与方法3.参数解释 二、代码实现1.读取数据2.检查图像是否成功加载3.获取模板的高度和宽度4.模板匹配5.计算匹配区域坐标6.显示图像7.全部代码 三、总结 一、简介 在OpenCV中,模型匹配(或称为模板匹配)是…