0


【前端】代码Git提交规范之限制非规范化提交信息

需求背景

在我们目前的前端项目中,我们采用

git

作为版本控制工具。使用

git

管理项目意味着我们经常需要提交代码。当我们执行

git commit -m "描述信息"

命令时,我们被要求提供一个描述信息。现在使用约定式规范提交,和Commitizen简化提交流程,但是如果出现人就是不遵守规则该怎么办呢?

解决方案

为了确保团队成员遵循约定式提交规范,可以设置Git钩子(hook)来限制非规范化的提交。例如,可以创建一个

pre-commit

钩子,当检测到提交信息不符合规范时,阻止提交并提醒开发者使用

git cz

**

Git hooks(git 钩子)

就是指

git

在执行某个事件之前或之后进行一些其他额外的操作。我们现在用到的只有两个:
Git Hook调用时机说明
pre-commit**

git commit

执行前 它不接受任何参数,并且在获取提交日志消息并进行提交之前被调用。脚本

git commit

以非零状态退出会导致命令在创建提交之前中止。可以用

git commit --no-verify

绕过commit-msg

git commit

执行前 可用于将消息规范化为某种项目标准格式。 还可用于在检查消息文件后拒绝提交。可以用

git commit --no-verify

绕过
翻译成大白话就是:

  • commit-msg:可以用来规范化标准格式,并且可以按需指定是否要拒绝本次提交
  • pre-commit:会在提交前被调用,并且可以按需指定是否要拒绝本次提交

以下是如何实现这一目标的步骤:

1、安装Husky,Husky是一个流行的Git钩子工具,它可以帮助你在提交或推送代码之前运行自定义脚本:

npminstall husky --save-dev

2、安装Commitlint,Commitlint是一个帮助检查Git提交信息是否符合约定的工具:

npminstall --save-dev @commitlint/config-conventional @commitlint/cli

3、在项目根目录下创建或编辑

commitlint.config.js

文件,配置提交信息的规则,配置项内容可以参考:config-conventional 默认配置。

module.exports = {
      extends: ['@commitlint/config-conventional'], // 继承的规则
      rules: { // 定义规则类型
        'type-enum': [ // type 类型定义,表示 git 提交的 type 必须在以下类型范围内
          2, // 当前验证的错误级别,2-表示错误级别的错误
          'always',
          [ // 泛型内容
            'feat', // 新功能 feature
            'fix', // 修复 bug
            'docs', // 文档注释
            'style', // 代码格式(不影响代码运行的变动)
            'refactor', // 重构(既不增加新功能,也不是修复bug)
            'perf', // 性能优化
            'test', // 增加测试
            'chore', // 构建过程或辅助工具的变动
            'revert', // 回退
            'build' // 打包
          ]
        ],
        'subject-case': [0] // subject 大小写不做校验
      }
    }

**注意:确保保存为

UTF-8

的编码格式**,否则可能会出现错误

4、启动

hooks

, 生成

.husky

文件夹

npx husky install

image-20240302232607843.png

5、在

package.json

中添加

prepare

指令

npm pkg setscripts.prepare="husky install"

image-20240302234433586.png

6、执行

prepare

指令

npm run prepare

7、执行成功,提示

image-20240302233135127.png

8、在

.husky

目录下,编辑

commit-msg

钩子文件,使用Commitlint来检查提交信息。

#!/usr/bin/env sh
npx --no-install commitlint --edit"$1"

7、此时, 不符合规范的 commit 将不再可提交

image-20240303000527796.png
8、这不得扣几个工钱,让大家长长记性。确保团队成员了解这些新规则,并知道如何使用

git cz

来规范化提交信息。

标签: 前端 git vue

本文转载自: https://blog.csdn.net/weixin_43242942/article/details/141682849
版权归原作者 洛小豆 所有, 如有侵权,请联系我们删除。

“【前端】代码Git提交规范之限制非规范化提交信息”的评论:

还没有评论