给你的项目搭建 Git 提交日志规范

398 阅读2分钟

为什么做 Git 提交规范?

在开发项目时,同一个团队的人员提交的日志各不一样,各有特色,有时候也过于简陋,甚至都不知道此次提交到底做了什么,导致非常不便于代码审查和项目管理。为了改变这种现象,我们可以借助工具对 Git 日志进行规范化约束,包括自动化,模板化以及强制校验。

安装与配置

yarn add -D @commitlint/cli @commitlint/config-conventional commitizen cz-conventional-changelog husky standard-version
// package.json添加
"scripts": {
    "commit": "git-cz",
    "release": "standard-version",
    "prepare": "husky install"
},
"config": {
    "commitizen": {
        "path": "node_modules/cz-conventional-changelog"
    }
},

// 根目录添加配置文件commitlint.config.js
module.exports = {
    extends: ["@commitlint/config-conventional"],
};
//依次执行
npm run prepare
npx husky add .husky/pre-commit "npm test"
npx husky add .husky/commit-msg "npx commitlint --edit $1"

上面两个脚本执行后会在.husky 内创建两个文件

image.png

image.png

image.png

库介绍

运行测试

//提交
yarn commit 

//生成日志
yarn release

提交类型说明

  • feat: 创建新特性
  • fix: 修复bug
  • docs: 更新文档
  • style: 不影响代码含义的更改(空白、格式、缺少分号等)
  • refactor: 代码重构不影响功能(既不修复bug也不添加特性)
  • perf: 改进性能的代码更改
  • test: 添加缺失的测试或纠正现有的测试
  • build: 影响构建系统或外部依赖项的更改(示例范围:gulp、broccoli、npm)
  • ci: 对CI配置文件和脚本的更改(示例范围:Travis, Circle, BrowserStack, SauceLabs)
  • chore: 其他不修改src或测试文件的更改
  • revert: 回滚上一次提交

参考资料

公司内部资料文档

优雅的提交你的 Git Commit Message