昨晚看了一篇關於編寫規範化的git commit message的文章,覺得對於多人團隊編寫項目來說確實很有用,周圍同事和自己提交的內容都很隨意,沒什麼太多信息量可言。然後自己也有這方面的困擾,每次提交commit的時候總在想要寫點什麼東西。所以今天嘗試了一把,順便記錄一下。
首先關於有哪些規範,以及規範格式參見下面的兩篇文章,這裏記錄一下如何實現。
-
全局安裝commitizen & cz-conventional-changelog
如果規範單純全靠自覺是不可能維持的,我們需要工具幫助和限制,那就是按照規範形式一步一步提醒我們需要輸入的內容,這個就是靠commitizen和cz-conventional-changelog幫助我們實現。
使用npm安裝全局插件:
$ npm install -g commitizen cz-conventional-changelog $ echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
有了這個插件,後續原先git commit命令用git cz命令替換即可
-
項目內部依靠插件commitlint和husky進行檢查
如果我們一直使用git cz提交代碼,那麼基本上就已經足夠了,但是爲了避免我們忘記使用git cz按照規範提交,我們可以使用插件來對commit內容進行檢查,這時就需要commitlint和husky兩個插件了。
一開始對npm不太熟悉,上來就安裝了這兩個插件,結果沒有成功。原來需要在項目根目錄下創建一個package.json文件或者使用
npm init
初始化一下項目。接下來看看安裝的步驟:-
項目根目錄下創建package.json文件
-
npm install --save-dev @commitlint/cli @commitlint/config-conventional
接着創建 commitlint.config.js 文件,並寫入以下內容:
module.exports = { extends: ['@commitlint/config-conventional'], };
-
安裝husky
npm install --save-dev husky
配置package.json文件,使用husky在commit的時候進行校驗。 這裏有個小插曲,就是按照參考文章裏面的配置script的方式來進行會報錯,後來去github項目看了文檔才配置成功的,所以很多東西不能只參考別人寫的文章,時過境遷,很多項目的變動會很大,還是需要以項目主頁參考文檔爲準。
{ "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } } }
-
參考文章: