前端工程化1--自動校驗Git Commit

Git Commit 規範及自動校驗

目標:對項目開發人員的每次commit書寫格式進行自動校驗css

1 規範

推薦使用 Angular 團隊提交規範node

1 主要有如下組成git

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
複製代碼
  • 標題行: 必填, 描述主要修改類型和內容
  • 主題內容: 描述爲何修改, 作了什麼樣的修改, 以及開發的思路等等
  • 頁腳註釋: 放 Breaking Changes 或 Closed Issues

2 具體說明github

  • scope: commit 影響的範圍, 好比: route, component, utils, build...
  • subject: commit 的概述
  • body: commit 具體修改內容, 能夠分爲多行
  • footer: 一些備註, 一般是 BREAKING CHANGE 或修復的 bug 的連接.

經常使用的修改項npm

DEMO

例如本次開發實現了用戶登陸的功能;則commit提交樣式以下:json

feat(login): add login feature

1.mobile login
2.email login
3.find password
複製代碼

Type: commit 的類型

  • build: 影響build system 或者相關依賴(如: gulp, broccoli, npm, yarn)
  • ci: 更改 CI 配置文件或者腳本(如:Circle, BrowserStack, SauceLabs)
  • docs: 文檔修改
  • feat: 新特性
  • fix: 修改問題
  • perf: 性能優化
  • refactor: 代碼重構
  • style: 代碼格式修改, 注意不是 css 修改
  • test: 測試用例修改
  • chore: 其餘修改, 好比構建流程, 依賴管理.

能夠使用Commitizen代替 git commit 能夠使用cz-cli工具代替 git commitgulp

全局安裝,並在項目根目錄初始化安裝性能優化

yarn add -g commitizen cz-conventional-changelog

commitizen init cz-conventional-changelog --yarn --dev --exact
複製代碼

then some change in your package.jsonbash

"config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  }
複製代碼

全局安裝後使用git cz代替 git commit就能夠了。工具

2 Commit 格式自動校驗

1 安裝commitlint

1.安裝工具

npm install -g @commitlint/cli @commitlint/
複製代碼

2.生成配置文件commitlint.config.js

方法 1 命令行工具生成

config-conventional
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
複製代碼

方法 2 手動生成

項目根目錄下建立commitlint.config.js這個文件,並配置

module.exports = { extends: ["@commitlint/config-conventional"] };
複製代碼

2 安裝husky工具

yarn add -D husky
複製代碼

2 配置husky校驗規則 //package.json

"husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }
複製代碼

由此就能夠實現每次提交git commit時候自動校驗commit的書寫是否符合規範。

相關文章
相關標籤/搜索