用工具思路來規範化 git commit message

爲何要規範 Git Commit Message

  • 發生問題快速識別問題代碼
  • commit和代碼創建聯繫,和相關prd、bug予以關聯。

如何寫出規範化的 Git Commit Message

選用當前業界內應用比較普遍的 Angular Git Commit Guidelineshtml

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
複製代碼
  1. type:commit的類型:feat fix refactor docs style test chorenode

  2. scope:commit 影響的範圍, 好比: route, component, utils, build...git

  3. subject:commit 的概述github

    • 以動詞開頭,使用第一人稱如今時,好比change,而不是changed或changes
    • 第一個字母小寫(能夠使用中文)
    • 結尾沒有符號
  4. body:commit 具體修改內容, 能夠分爲多行npm

  5. footer:一些備註, 一般是 BREAKING CHANGE 或修復的 bug 的連接json

項目使用參考步驟

1.Commitizen: 替代你的 git commit

commitizen/cz-cli, 咱們須要藉助它提供的 git cz 命令替代咱們的 git commit 命令, 幫助咱們生成符合規範的 commit message.ide

除此以外, 咱們還須要爲 commitizen 指定一個 Adapter 好比: cz-conventional-changelog (一個符合 Angular團隊規範的 preset). 使得 commitizen 按照咱們指定的規範幫助咱們生成 commit message.post

yarn add --dev commitizen cz-conventional-changelog
複製代碼

package.json中配置:ui

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

若是全局安裝過 commitizen, 那麼在對應的項目中執行 git cz or npm run commit 均可以spa

2.Commitlint: 校驗你的 message

commitlint: 能夠幫助咱們 lint commit messages,校驗的配置推薦 @commitlint/config-conventional (符合 Angular團隊規範). 話很少說直接按照:

yarn add --dev @commitlint/config-conventional @commitlint/cli
複製代碼

同時須要在項目目錄下建立配置文件 .commitlintrc.js, 寫入:

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

3.結合 Husky

yarn add --dev husky
複製代碼

package.json 中添加:

"husky": {
    "hooks": {
      ...,
      "commit-msg": "commitlint -e $GIT_PARAMS"
    }
  },
複製代碼

參考資料

優雅的提交你的 Git Commit Message

Commit message 和 Change log 編寫指南

相關文章
相關標籤/搜索