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

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

时间:2023-09-05 11:34:41浏览次数:37  
标签:git name -- value cz npx 提交 husky commitlint

主要插件

  • 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:     新功能', emoji: '

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

相关文章

  • 信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
    目录信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份后端-开源-指纹识别-源码下载后端-闭源源码泄漏集合:各个问题的解决使用工具:源码泄漏原因:码云资源搜索涉及平台:GITHUB资源搜索:关键字配合谷歌搜索:特征关键文件信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&S......
  • idea git重置到某个版本然后提交
    1.复制版本号(git-显示历史记录)2.通过命令重置gitreset--softe28b54d3a7f354ca15e2f3d0c74978c75fcf44213.再次提交idea自带或者命令行gitpush-f-uoriginmaster4.参考链接https://blog.csdn.net/weixin_43888177/article/details/131204853......
  • 大厂都在用的Git代码管理规范(转)
    以下文章来源于码农参上 ,作者DrHydra码农参上.专注后端技术分享,有趣、深入、直接,与你聊聊技术。将 脚本之家 设为“星标⭐”第一时间收到文章更新 来源:码农参上(ID:CODER_SANJYOU)作者:DrHydra分支命名master分支master为主分支,也是用于部署生产环境的分支,需要确......
  • Linux搭建GitLab私有仓库
    前言GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。Gitlab是被广泛使用的基于git的开源代码管理平台,基于RubyonRails构建,主要针对软件开发过程中产生的代码和文档进行管理,Gitlab主要针对group和project两个维度进行代......
  • Git代码管理规范
    Git代码管理规范分支命名master分支master为主分支,也是用于部署生产环境的分支,需要确保master分支稳定性。master分支一般由release以及hotfix分支合并,任何时间都不能直接修改代码。develop分支develop为开发环境分支,始终保持最新完成以及bug修复后的代码,用于前......
  • Git使用经验总结2-配置用户名邮箱
    可以使用gitconfig指令来配置一些设置,比如配置用户名邮箱。在开发团队要求成员配置用户名和邮箱是很有用的,可以配合工具区分成员的代码,以及将代码中的问题发送给成员的邮箱中。查看当前Git的用户名及邮箱的指令:gitconfiguser.namegitconfiguser.email修改Git用户名及邮......
  • git忽略提交(git如何忽略某个文件的提交)
    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。Git忽略文件提交的方法有三种方法可以实现忽略Git中不想提交的文件。1、在Git项目中定义.gitignore文件这种方式通过在项目的某个......
  • Git常用命令
    Git常用命令gitconfig--globaluser.name用户名设置用户签名gitconfig--globaluser.email邮箱设置用户签名gitinit初始化本地库gitstatus查看本地库状态gitadd文件名添加到暂存区gitcommit-m"日志信息"文件名提交到本地库gitreflog查看历史记录g......
  • 如何提交站点地图
    什么是站点地图?我是否需要此报告?站点地图是网站上的一个文件,可以让Google知道应该了解网站上的哪些网页。如果您使用了网站托管服务(比如Squarespace或Wix),这些服务可能会为您管理站点地图,这样的话,您就无需创建自己的站点地图,也无需使用此报告。若想了解站点地图的相关信息,请搜......
  • git深入研究
    1、Git是分布式的,SVN不是:这是Git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。2、Git把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn、.cvs等的文件夹里。3、Git分支和SVN的分支不同:分支在SVN中一点都不......