优雅Git提交代码

git提交规范化

commit messge规范十分有助于项目管理,目前使用最多的是Angular团队的规范
主要规范是:

  • type: commit的类型
    • feat: 新特性
    • fix: 修改问题
    • refactor: 代码重构
    • docs: 文档修改
    • style: 代码格式修改,非css
    • test: 测试用例修改
    • chore: 其他修改,比如构建流程,依赖管理
  • scope: commit影响的范围,比如: route, component, utils, build...
  • subject: commit 的概述
  • body: commit具体修改
  • footer: 备注
    基本上一个提交类似
feat(subject): title
1. change some
2. do some

自定义规范

配置自己的commit规范

安装

npm i -D cz-customizable commitizen cz-conventional-changelog

配置文件

项目目录下.cz-config.js配置
package.json

"script": {
  "commit": "git-cz"
}
...
 "config": {
    "commitizen": {
      "path": "cz-customizable"
    }
  }

CommitLint

通过npm run commit 可以提交,但是无法对git commit 起作用,所以需要CommitLint校验一下

安装

npm i -D @commitlint/config-conventional @commitlint/cli

配置文件

commitlint.config.js配置文档

module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [2, 'always', [
      "feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"
    ]],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never']
  }
};

结合Husky和lint-staged进行规范代码和校验提交

Husky可以生成git hook,提交前可以进行自定义操作,我们可以规范代码和校验提交

安装

npm i -D husky lint-staged prettier

配置文件

prettier是一个代码规范,配置文件.prettierrc配置文档

{
  "eslintIntegration": true,
  "stylelintIntegration": true,
  "tabWidth": 2,
  "sigleQuote": true,
  "semi": true,
  "bracketSpacing": true
}

package.json添加

"husky": {
    "hooks": {
      "pre-commit": "lint-staged", 
      "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
    }
  },
  "lint-staged": {
    "src/**/*.{js,jsx}": [
      "prettier --write",
      "git add"
    ]
  },

standard-version: 自动生成 CHANGELOG

安装

npm i -D standard-version

package.json 配置:

"scirpt": {
    ...,
    "release": "standard-version"
}

你可能感兴趣的:(优雅Git提交代码)