优雅Git提交代码

git提交规范化

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

  • 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规范html

安装

npm i -D cz-customizable commitizen cz-conventional-changelog
复制代码

配置文件

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

"script": {
  "commit": "git-cz"
}
...
 "config": {
    "commitizen": {
      "path": "cz-customizable"
    }
  }
复制代码

CommitLint

经过npm run commit 能够提交,可是没法对git commit 起做用,因此须要CommitLint校验一下github

安装

npm i -D @commitlint/config-conventional @commitlint/cli
复制代码

配置文件

commitlint.config.js配置文档npm

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,提交前能够进行自定义操做,咱们能够规范代码和校验提交json

安装

npm i -D husky lint-staged prettier
复制代码

配置文件

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

{
  "eslintIntegration": true,
  "stylelintIntegration": true,
  "tabWidth": 2,
  "sigleQuote": true,
  "semi": true,
  "bracketSpacing": true
}
复制代码

package.json添加ide

"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"
}
复制代码
相关文章
相关标签/搜索