手把手教你规范团队git提交信息 - commitlint规范

commit message 提交规范

在一个开发团队中,每个人的git的commit信息都不一样,没有统一的标准很难保证规范化,如何才能规范化呢?

Angular 规范,包括三个部分:header,body 和 footer,格式如下:

其中header是必须有的,body,footer可选,header由type:subject形式组成

go 复制代码
type: subject
// 空一行
body
// 空一行
footer

提交规范模版

下面只介绍header 部

type 用于说明 commit 的类别,如下:

arduino 复制代码
'feat',//新特性、新功能
'fix',//修改bug
'docs',//文档修改
'style',//代码格式修改, 注意不是 css 修改
'refactor',//代码重构
'perf',//优化相关,比如提升性能、体验
'test',//测试用例修改
'chore',//其他修改, 比如改变构建流程、或者增加依赖库、工具等
'revert',//回滚到上一个版本
'build',//编译相关的修改,例如发布版本、对项目构建或者依赖的改动

注意:

  • type后面跟着的是英文冒号,还必须加一个空格!
  • 当我们 commit 提交信息时,必须是 git commit -m 'fix: xxx' 符合类型的才可以,需要注意的是类型的后面需要用英文的 :,并且冒号后面是需要空一格的,这个是不能省略的

具体配置

提交规范检测

命令行提交

用命令行方式提交信息,采用 husky + commitlint进行提交前检测。

配置commitlint

对于commit信息,要有统一规范,要让每个人都按照统一的规范来执行,我们可以利用commitlint来实现。

安装包

add @commitlint/config-conventional @commitlint/cli -D

添加配置文件,新建commitlint.config.cjs文件,然后添加下面的代码:

java 复制代码
module.exports = {
  extends: ['@commitlint/config-conventional'],
  // 校验规则
  rules: {
    'type-enum': [
      2,
      'always',
      [
        'feat',
        'fix',
        'docs',
        'style',
        'refactor',
        'perf',
        'test',
        'chore',
        'revert',
        'build',
      ],
    ],
    'type-case': [0],
    'type-empty': [0],
    'scope-empty': [0],
    'scope-case': [0],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never'],
    'header-max-length': [0, 'always', 72],
  },
}

package.json中配置scripts命令

在scrips中添加下面的代码
json 复制代码
{ "scripts": { "commitlint": "commitlint --config commitlint.config.cjs -e -V" }, }

按照上面配置完成后,现在当我们填写commit信息的时候,前面就需要带着下面的subject

arduino 复制代码
'feat',//新特性、新功能
'fix',//修改bug
'docs',//文档修改
'style',//代码格式修改, 注意不是 css 修改
'refactor',//代码重构
'perf',//优化相关,比如提升性能、体验
'test',//测试用例修改
'chore',//其他修改, 比如改变构建流程、或者增加依赖库、工具等
'revert',//回滚到上一个版本
'build',//编译相关的修改,例如发布版本、对项目构建或者依赖的改动

配置husky

sql 复制代码
npx husky add .husky/commit-msg

在生成的commit-msg文件中添加下面的命令

bash 复制代码
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
pnpm commitlint

测试:

bash 复制代码
# 提交到版本库 格式错误 提交失败
git commit -am '11'

# 提交到版本库 格式正确 提交成功
git commit -am 'fix: 修复了xxx的bug'

当我们 commit 提交信息时,必须是 git commit -m 'fix: xxx' 符合类型的才可以,需要注意的是类型的后面需要用英文的 :,并且冒号后面是需要空一格的,这个是不能省略的

相关推荐
慧一居士6 分钟前
flex 布局完整功能介绍和示例演示
前端
DoraBigHead8 分钟前
小哆啦解题记——两数失踪事件
前端·算法·面试
一斤代码6 小时前
vue3 下载图片(标签内容可转图)
前端·javascript·vue
中微子6 小时前
React Router 源码深度剖析解决面试中的深层次问题
前端·react.js
光影少年6 小时前
从前端转go开发的学习路线
前端·学习·golang
中微子6 小时前
React Router 面试指南:从基础到实战
前端·react.js·前端框架
3Katrina6 小时前
深入理解 useLayoutEffect:解决 UI "闪烁"问题的利器
前端·javascript·面试
前端_学习之路7 小时前
React--Fiber 架构
前端·react.js·架构
伍哥的传说7 小时前
React 实现五子棋人机对战小游戏
前端·javascript·react.js·前端框架·node.js·ecmascript·js
qq_424409198 小时前
uniapp的app项目,某个页面长时间无操作,返回首页
前端·vue.js·uni-app