博客 / 詳情

返回

項目可以怎麼規範Git commit ?

通常情況下,commit message應該清晰明瞭,説明本次提交的目的,具體做了什麼操作。但是在日常開發中,大家的commit message都比較隨意,中英文混合使用的情況有時候很常見,這就導致後續代碼維護成本比較大。
基於這些問題,可以通過husky和commitlint來規範commit的格式,來減小代碼維護成本。
Angular規範是目前使用最廣的寫法,比較合理和系統化,並且有配套的工具(VSCode插件git-commit-plugin就非常好用)

commit message介紹

commit message格式

<type>(<scope>): <subject>

type(必須)
用於説明 commit 的類別,只允許使用下面7個標識。

  • feat:新功能(feature)
  • fix:修補bug
  • docs:文檔(documentation)
  • style: 格式(不影響代碼運行的變動)
  • refactor:重構(即不是新增功能,也不是修改bug的代碼變動)
  • test:增加測試
  • chore:構建過程或輔助工具的變動

scope(可選)
scope用於説明 commit 影響的範圍,比如數據層、控制層、視圖層等等,視項目不同而不同。

subject
subject是 commit 目的的簡短描述,不超過50個字符。

注意事項:

  • 以動詞開頭,使用第一人稱現在時,比如change,而不是changedchanges
  • 第一個字母小寫
  • 結尾不加句號(.)

安裝到項目

husky

1. 安裝 husky `npm install husky --save-dev`
2. 初始化 husky `npx husky install`
3. 設置項目 install 自動初始化 husky ,在 package.json 添加腳本

```
// package.json
{
  "scripts": {
    "prepare": "husky install"
  }
}
```

hook
新增 hook 勾子命令,項目中使用 commit-msg 勾子來校驗 commit message 是否符合規範: npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"<br/>
運行上面命令後,將自動在 .husky  文件夾下面新增對應的勾子文件,如下

如果運行完新增勾子函數如果出現如下消息

可以先執行 npx husky add .husky/commit-msg,然後手動去commit-msg文件裏添加npx --no-install commitlint --edit $1

commitlint

  1. 安裝 @commitlint/config-conventional @commitlint/cli  
    npm install --save-dev @commitlint/config-conventional @commitlint/cli

  2. 新增配置文件 .commitlintrc.js 

    module.exports = {
      extends: [
        '@commitlint/config-conventional'
      ]
    };

參考文章
Commit message 和 Change log 編寫指南

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.