優雅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"
}
複製代碼
相關文章
相關標籤/搜索