Git Commit Log優(yōu)雅的提交方式
本文的完成參考于思否的文章,感謝原作者和阮一峰老師提供的思路。
現(xiàn)在團(tuán)隊(duì)開發(fā)新項(xiàng)目改用gitlab進(jìn)行托管,每次進(jìn)行g(shù)it commit的時(shí)候都很苦惱于寫什么信息,于是打算按照前人總結(jié)的經(jīng)驗(yàn)進(jìn)行規(guī)范一下信息。
書寫規(guī)范
書寫規(guī)范如下:
<type>: <subject>
<body>
type
提交commit的類型包含以下幾種:
- feat: 新功能
- fix: 修復(fù)問題
- docs: 修改文檔
- style: 修改代碼格式,不影響代碼邏輯
- refactor: 重構(gòu)代碼,理論上不影響現(xiàn)有功能
- perf: 提升性能
- test: 增加修改測試用例
- revert: 回退,建議直接使用Github Desktop回退,而不是使用命令
subject
書寫要遵循以下四種規(guī)則:格式盡量使用謂賓,使用謂賓不通順時(shí),可以使用主謂。具體來講就是新增某某功能、修改某某代碼等。
- 除了名稱之外,描述盡可能使用中文,方便不同開發(fā)者理解
- 結(jié)尾不加句號
- 描述控制在20個(gè)漢字以內(nèi)
body
對本地提交的詳細(xì)描述,不建議。我們建議多次少量提交,而不是一次巨量的提交,有助于revert和code review,也對災(zāi)難存儲有容災(zāi)。
工具
這里的工具使用commitizen。
首先進(jìn)行安裝,步驟如下:
cd your-project
npm install commitizen --save-dev
commitizen init cz-conventional-changelog --save --save-exact
等你的項(xiàng)目有改動之后:
git add . //注意后面加上.
git cz
你會發(fā)現(xiàn)這里的cz替代了commit命令。如果提示Cannot find module '/Users/Chuck/黨建積分/node_modules/cz-conventional-changelog'(這里的路徑因人而異),這就需要在package.json修改commitizen的路徑。等沒有任何問題的時(shí)候,提交頁面會如下所示:

通過上下箭頭的選擇并輸入相應(yīng)的信息后,一路回車即可。下面是成功提交信息的頁面:

在命令行敲入命令git log就可看到所有的提交信息,從下圖可以看到最終提交的信息格式是:style: 這里是輸入提交信息的地方。

通過這樣的方式來描寫提交信息,清晰明了,也方便以后通過詳細(xì)的信息定位問題或回滾代碼。
總結(jié)
總的來看,采用工具進(jìn)行提交更加規(guī)范,也不容易出錯。只需要選擇好類型并輸入信息就可以了。美中不足的地方就是,不能通過命令行對某個(gè)文件的修改進(jìn)行提交,只能將所有的修改統(tǒng)一進(jìn)行提交(不過也有可能可以,只是我暫時(shí)不知道,希望知道的同學(xué)告知一下)。