美文网首页
2024.06 git提交前校验

2024.06 git提交前校验

作者: wo不是黄蓉 | 来源:发表于2024-06-24 21:00 被阅读0次
  • 安装校验工具
image-20240625200200058.png

husky是一个用于设置git hooks的工具,执行自定义的脚本程序

@commitlint/cli是一个命令行工具,用于校验git提交信息是否符合规范

@commitlint/config-conventional是一个配置,用来配置提交规范,结合上一个工具一起使用

npm i husky @commitlint/cli @commitlint/config-conventional -D
  • 配置package.json scripts
  "scripts": {
    "prepare": "husky install"
  },
  • 生成.husky文件夹,会生成以下文件
npm run prepare
  • .husky文件夹下新建commit-msg文件,不要带后缀名,否则规则会不生效
  • 修改commit-msg文件的内容,下面这些
# 告诉系统该脚本应该使用哪个解释器来执行
#!/bin/sh
# $0是当前脚本的路径
# dirname用于获取这个路径的目录部分
# 这里获取到的是.husky/commit-msg
# /husky.sh 环境脚本路径,相对于上一步得到的目录,husky使用这个脚本来设置一些环境变量和执行必须要的初始化操作
. "$(dirname "$0")/_/husky.sh"

# 执行commitlint检查
npx --no-install commitlint --edit "$1"
  • 项目根目录下新建commitlintrc.cjs,提交信息必须以下面type-enum中的一种开头提交
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [
      2,
      'always',
      [
        'feat', // 新功能(feature)
        'fix', // 修补bug
        'perf', //性能优化
        'docs', // 文档(documentation)
        'style', // 格式(不影响代码运行的变动)
        'refactor', // 重构(即不是新增功能,也不是修改bug的代码变动)
        'test', // 增加测试
        'revert', // 回滚
        'config', // 构建过程或辅助工具的变动
        'chore', // 其他改动
        'build', //构建配置修改
        'ci', //CI配置修改
        'Chores' //其他更新
      ]
    ],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never']
  }
}

以下是两次带feat提交和不带feat提交的两个场景的测试

image-20240625201501622.png

收藏下这篇文章关于代码格式校验和代码提交很全

不使用husky,使用lint-staged

lint-staged是一个在git暂存文件上运行的校验工具,只会对暂存区的文件(变更的文件)进行校验

package.json配置

配置项解释:当暂存区文件改变时,*.{js,ts,vue}匹配.js .ts .vue结尾的文件[ "eslint --fix", "git add" ]当这些文件有变更后,会依次执行eslint --fix git add的命令,这种配置的好处是它会自动校验并修复代码中的格式问题

 "gitHooks": {
     // 提交之前进行进行代码检查和修复
    "pre-commit": "lint-staged",
    // 针对提交信息的校验
    "commit-msg": "commitlint --config .commitlintrc.js -e -V"
  },
  "lint-staged": {
     
    "*.{js,ts,vue}": [
      "eslint --fix",
      "git add"
    ],
    "src/**/*.{vue,css,sass,scss}": [
      "stylelint --fix",
      "git add"
    ]
  }

相关文章

  • eslint 如何让 git 提交前校验代码

    安装 husky, 这是git提交前的钩子,可以在commit前执行一些命令 yarn add --dev husky

  • 去掉git的提交校验

    公司里遇到一个情况,公司在开发机提交代码的时候,会自动的触发代码校验,如果格式不合格或者缺少部分必须的语句就会提示...

  • git msg 提交格式校验

    1.需要把我们写的钩子脚本代码命名为commit-msg 命令行执行文件,放到项目的.git->hooks下面(需...

  • git常用命令总结

    目录 拆pr git log 查看历史提交 git reset 回滚到提交前,但是这时候未提交文件还在 git a...

  • Git 分支

    分支理解当使用 git commit 进行提交操作时,Git 会先计算每一个子目录的校验和,然后在Git仓库中这些...

  • 2020-07-01 git 的使用

    1.git 使用前配置信息 在git使用前,需要告诉git你是谁,在向git仓库中提交时需要用到: 1.1配置提交...

  • 初识Git

    Git基础 Git 中所有的数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改...

  • 《Pro Git》读书笔记

    Git保证完整性 Git 中所有数据在存储前都计算校验和,然后以校验和来引用。SHA-1散列(hash, 哈希)....

  • git commit 提交取消eslint校验

    在不更改配置的情况下使用命令行

  • git命令手册

    git配置 在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。 配置提交人姓名:g...

网友评论

      本文标题:2024.06 git提交前校验

      本文链接:https://www.haomeiwen.com/subject/losdcjtx.html