项目规范一-git commit 配置

2,288 阅读2分钟

本篇文章主要用于记录我自己在配置commit规范的时候流程和遇到的一些问题

问题

但是在日常工作中,git commit 的信息都是简单写写甚至随便乱写,这对于项目的管理和维护来说,无疑是不友好的。

目的

配置git commit校验规范,形成规范的commit log,方便回溯定位问题 安装提交验证工具

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

添加校验格式的配置文件 根目录新建一个文件commitlint.config.js 添加内容

module.exports = {extends: ['@commitlint/config-conventional']}

为了在 git commit时可以自动使用commitlint 来检查我们输入的message,我们还需要安装— husky。

yarn add husky -D
npx husky install
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

现在我们来测试提交下git commit -m '测试提交' image.png 不符合提交规范报错,并显示错误原因。

在来尝试下规范提交git commit -m 'test(app.vue): 修改配置' image.png 好了现在就全部配置完成

提交规范

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Header 部分包括三个字段:type(必需)、scope(可选)和subject(必需)

  • type 提交类型(必填项),
    feat: 新增feature
    fix: 修复bug
    docs: 仅仅修改了文档,如readme.md
    style: 仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。
    refactor: 代码重构,没有新增功能或修复bug
    perf: 优化相关,如提升性能、用户体验等。
    test: 测试用例,包括单元测试、集成测试。
    chore: 改变构建流程、或者增加依赖库、工具等。
    revert: 版本回滚
    build: 打包构建
    ci
    
  • scope 影响范围(非必填)多个可以用/, \,,隔开
  • subject 提交简短描述(必填) Body
  • 对本次 commit 修改内容的具体描述, 可以分为多行 Footer
  • BREAKING CHANGE 重大改变
  • Issue 关闭或者修复之前的bug

commitizen

每次提交都要手动输入命令,容易照成提交失败。commitizen是一款可以交互式建立提交信息的工具可以帮助生成提交文档避免格式出错

安装

yarn add commitizen -D
// 安装cz-conventional-changelog
// 将其保存到package.json的依赖项或devDependencies
// 将config commitizen配置添加到package.json的根目录,如下所示
npx commitizen init cz-conventional-changelog --save-dev --save-exact
// 配置
scripts: {
    commit: cz
  }

使用yarn commit 提交尝试一下

如果报错删除掉node_modules 重新安装一次