首页 > 其他分享 >git-cz 代码提交统一规范配置

git-cz 代码提交统一规范配置

时间:2023-04-12 16:12:59浏览次数:39  
标签:git name -- value cz 提交 husky commitlint

Angular提交规范 - GitGuide (zjdoc-gitguide.readthedocs.io)

主要插件

  • commitizen: 代码提交辅助工具
  • commitlint: 代码校验工具
  • husky: githook 插件
  • lint-staged: 前端文件过滤工具,只检测暂存区代码
  • cz-customizable: 自定义提交配置

安装步骤

1. 环境准备

  • git 版本,笔者使用git for win 2.27.0相关钩子无发现问题,也建议>= 2.27.0版本,低版本会有githook 不兼容问题。
  • node.js >= 14,使用相关插件需要14或以上版本,推荐使用node.js 14

2. husky安装配置

npm install --save-dev [email protected]
  • 在package.json scripts 属性中添加命令并保存:
"scripts": {    "prepare""npx husky install"
  • 在控制台输入:npm run prepare 初始化 husky

第一次执行后,会在工程根目录自动创建.husky 目录

  • 创建预提交脚本,控制台输入
npx husky add .husky/pre-commit "npx lint-staged"

​ 成功后,目录会生成pre-commit 脚本,如果执行完没有生成,则换一种思路:

​ 先创建脚本文件

npx husky add .husky/pre-commit

再将脚本文件中的undefined 改为 npx lint-staged

.husky/pre-commit详细内容

#!/usr/bin/env sh "$(dirname -- "$0")/_/husky.sh"   npx lint-staged
  • 创建提交校验信息检测脚本,commitlint 进行校验
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

​ 成功后,目录会生成commit-msg脚本,如果执行完没有生成,则类似参考上述步骤:

npx husky add .husky/commit-msg

创建脚本文件后,再手动替换:

npx --no-install commitlint --edit "$1"

.husky/commit-msg详细内容

#!/usr/bin/env sh "$(dirname -- "$0")/_/husky.sh"   npx --no-install commitlint --edit "$1"

3. lint-staged安装配置

lint-staged 用于预提交时要进行代码检查的规范,比如eslint

npm install --save-dev [email protected]

在package.json 新增lint-staged 配置

{   "lint-staged": {     "src/**/*.{js,vue}": [       "eslint --fix"     ]   }, }

即对暂存区 js/vue 代码进行 eslint规范检查

4. commitlint 提交校验安装配置

commitlint 用于提交格式的校验

npm install --save-dev @commitlint/[email protected] @commitlint/[email protected]

在工程根目录创建commitlint.config.js文件,保存如下信息:

module.exports = {   extends: ['@commitlint/config-conventional'] };

5. commitizen适配器

用于命令交互式提交的插件,方便大家的进行提交

  • 全局安装commitizen
npm install -g [email protected]  // 建议使用此版本,更高版本测试存在问题
  • 安装自定义项目提交配置适配器
npm install --save-dev [email protected]
  • package.json 添加commitizen配置,config
{   "devDependencies": {      "cz-customizable""^6.3.0"   },   "config": {     "commitizen": {       "path""./node_modules/cz-customizable"     }   } }
  • 配置cz-customizable配置项

在工程根目录创建 .cz-config.js 配置文件,文件内容参考如下:

module.exports = {   // 可选类型   types: [     { value: 'feat', name: 'feat: 新功能' },     { value: 'fix', name: 'fix: 修复一个bug' },     { value: 'docs', name: 'docs: 文档变更' },     { value: 'style', name: 'style: 代码格式(不影响代码运行的变动)' },     { value: 'conflict', name: 'conflict: 修复代码冲突' },     { value: 'font', name: 'font: 字体文件更新' },     { value: 'refactor', name: 'refactor: 重构(既不是增加feature,也不是修复bug)'},     { value: 'perf', name: 'perf: 性能优化' },     { value: 'test', name: 'test: 增加测试' },     { value: 'chore', name: 'chore: 构建过程或辅助工具或配置工具修改' },     { value: 'revert', name: 'revert: 回退' },     { value: 'build', name: 'build: 影响构建系统或外部依赖项的更改(如:webpack、npm)' }   ],   // 交互式消息提示步骤   messages: {     type: '请选择提交类型:',     customScope: '请输入修改范围(可选):',     subject: '请简要描述提交(必填):',     body: '请输入详细描述(可选):',     footer: '请输入要关闭的issue(可选):',     confirmCommit: '确认使用以上信息提交?(y/n/e/h)'   },   // 跳过问题   skipQuestions: ['body''footer'],   // subject文字长度默认是72   subjectLimit: 72 }

如果需要更多的自定义配置,见

官方配置https://github.com/leoforfree/cz-customizable/blob/master/cz-config-EXAMPLE.js 样例

  • 增加自定义校验规则到commitlint配置

编辑commitlint.config.js,导入.cz-config.js 中的自定义的规则项

const { types } = require('./.cz-config.js')
const typeList = types.map(item => item.value)
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [2, 'always', typeList]
  }
}

FAQ

 

  • 是否所有开发人员都要进行配置

否,第一次的配置,只需要工程负责人按照上述配置安装配置即可,其他开发人员拉取代码后,需要在本地执行两个操作:

  1. 本地执行 npm install 。
  2. npm install -g [email protected]
  • git cz 提示不存在

确保全局安装了commitizen

 

标签:git,name,--,value,cz,提交,husky,commitlint
From: https://www.cnblogs.com/amnesia999/p/17310137.html

相关文章

  • git用法
    3.1.2基本配置1.右键打开GitBash2.设置用户信息gitconfig--globaluser.name"itcast"gitconfig--globaluser.email"hellpoitcast.cn"查看配查信息gitconfig--globaluser.namegitconfig--globaluser.email ......
  • Github 添加贪吃蛇动画
    前言我们都知道,对于Github来说,当你选择你的账户时,可以看到自己的提交记录。于是就有大神动脑筋了,这些commit记录都是一些豆,如果弄一条蛇来,不就可以搞个贪吃蛇了吗?有道理有道理,本文就来讲一下如何弄一条蛇出来。 创建步骤创建个人仓库个人仓库是一个特殊的仓库,名字就是你的......
  • [shell] git并发提交
     for((i=1;i<5;i++))dosed-i"s/:$app_name:.*/:$app_name:$app_tag/"$app_filegitadd$app_filegitconfiguser.emailyourname@email.comgitconfiguser.nameyournamegitcommit-m"$app_branch$app_name:$app_tag&q......
  • 操作推荐-git工作流
    操作推荐-git工作流sourcetree环境sourcetree是一款可视化的版本管理软件可以实现版本的管理和发布同样,也支持git工作流的使用创建git工作流在main或者master主分支上,点击git工作流会自动创建develop分支之所以需要独立出一个分支,是为了保证主分支的稳定不同的发展分......
  • .gitignore的配置
    #BuildandReleaseFoldersbin-debug/bin-release/[Oo]bj/[Bb]in/#Otherfilesandfolders.settings/#Executables*.swf*.air*.ipa*.apk**/mvnw**/mvnw.cmd**/.mvn**/target/.idea**/.gitignore#Projectfiles,i.e.`.project`,`.actionScriptPro......
  • Git的快速学习与掌握:在Git命令面板的使用、在IDEA中配置并使用Git的教程
    原文章链接http://t.csdn.cn/hL3b9Git分布式版本控制系统,适用于团队开发合作,本文讲述的是Git的快速学习与掌握:在Git命令面板的使用、在IDEA中配置并使用Git的教程目录原文章链接http://t.csdn.cn/hL3b9学会使用基本命令第一步:跟随图片动手练习安装和配置提交操作版本操作、切......
  • git提交代码被拒推送
    原文章链接http://t.csdn.cn/PxVrg目录原文章链接http://t.csdn.cn/PxVrggit提交代码被拒推送问题描述:问题原因:解决方案:解决方案一:解决方案二:git提交代码被拒推送问题描述:idea提交代码出现Pushtoorigin/masterwasrejected问题原因:一般发生在GitHub或码云刚刚创建......
  • React+Antd在使用form表单提交DatePicker日期框的时候会出现少八小时的情况
    在使用antd做form表单提交的时候,突然发现了一个很有意思的bug.就是在使用datepicker组件日期框的时候会出现提交后少一天的问题我在网上搜索了许多解决办法,也是困扰了我一天的时间,下面代码.letformData=JSON.parse(JSON.stringify(form.getFieldsValue()));......
  • git常用命令以及解析
    Git是一个非常流行的开源分布式版本控制系统,可以帮助开发者更好的管理和写作开发代码,以下是一些常用的git命令以及详解:1.gitinit作用:初始化一个Git仓库详解:在需要进行版本控制的目录中执行gitinit命令,会在改目录中穿件一个.git子目录,用于存储仓库的原数据和对象数据库2.git......
  • gitlab-ce-15.9.4安装
    如果需要汉化,请根据汉化来选择版本汉化包下载地址:https://gitlab.com/xhang/gitlab/1.依赖包安装yum-yinstallpolicycoreutilsopenssh-serveropenssh-clientspostfix2.下载gitlab-ce并安装#下载安装包https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/git......