手把手教你规范团队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 分钟前
What did Trea work help me with in this optimization process
前端·后端
一拳不是超人9 分钟前
被 Tauri「体积小」种草后,我拿它做了个本地 AI 桌面工具,然后踩了这些坑
前端·架构
hyf32663329 分钟前
高收益玩法:站群泛程序结合本地服务引流变现全流程
运维·服务器·前端·搜索引擎·蜘蛛池
IT_陈寒33 分钟前
Vite热更新失效?八成是这个配置在搞鬼
前端·人工智能·后端
恋猫de小郭1 小时前
社区版 Dart macros?一个可以解决 JSON 序列化的Fluter “宏编程”第三方包
android·前端·flutter
2601_965798471 小时前
Contractor Web Setup: Deploying Bathrooms & Kitchens Theme Fast
前端·web3·php·wordpress
Dxy12393102161 小时前
Python XPath position() 完整使用指南,避坑合集(lxml适用)
前端·javascript·python
名字还没想好☜2 小时前
React 19 useOptimistic 实战:点赞评论先更新 UI,失败自动回滚
前端·javascript·react.js·ui·react·useoptimistic
晴天162 小时前
HarmonyOS 和 React 对比-Day22
前端·华为·harmonyos
AlienZHOU8 小时前
DeepSeek Harness 插件:HTML 实时可视化编辑
前端·agent·deepseek