在日常的開(kāi)發(fā)工作中,我們團(tuán)隊(duì)所有的項(xiàng)目都是使用Git來(lái)做版本管理的。Git是個(gè)很強(qiáng)大的版本管理工具,像全球最大的同性交友網(wǎng)站Github就是基于Git的。
如此強(qiáng)大的版本管理工具,在實(shí)際的應(yīng)用中,我們很多的時(shí)候卻沒(méi)有發(fā)揮它的作用,而且還把它用的超級(jí)爛,其中最明顯的就是Commit message。
實(shí)際項(xiàng)目提交記錄
在項(xiàng)目中存在大量提交,每一次提交都意味著系統(tǒng)的一次更新,但是從提交信息中我們很難分辨出某一次提交具體解決了什么問(wèn)題,增加了什么功能。提交內(nèi)容如下:

打開(kāi)一次提交記錄,我們還會(huì)發(fā)現(xiàn)在一次提交中,融合了太多的功能:
- 修復(fù)了一個(gè)bug
- 優(yōu)化了代碼結(jié)構(gòu)
- 增加了一個(gè)新功能
- 等等
提交的內(nèi)容太多的復(fù)雜,混亂。當(dāng)我們需要版本回滾的時(shí)候,無(wú)法很好的將代碼恢復(fù)到某一個(gè)功能點(diǎn)上。
優(yōu)秀開(kāi)源項(xiàng)目提交記錄
接下來(lái)我們?cè)诳纯磧?yōu)秀的開(kāi)源項(xiàng)目是如何提交記錄的。

上面的提交記錄是我從Angular項(xiàng)目中截取的,我們可以清晰的看到每一次提交都做了什么,commit message都使用了簡(jiǎn)明的文字描述了提交內(nèi)容。
打開(kāi)提交記錄,我們會(huì)發(fā)現(xiàn)提交內(nèi)容和message非常匹配,一次提交絕不會(huì)包含和本次提交目的無(wú)關(guān)的內(nèi)容。這樣提交代碼,可以很方便的進(jìn)行代碼Review。
Commit Message規(guī)范
參考優(yōu)秀的開(kāi)源項(xiàng)目,我們可以很好的總結(jié)出一套message的格式規(guī)范:

總結(jié)
參考并使用總結(jié)出來(lái)的這套規(guī)范,可以是我們版本管理更清晰,使我們的項(xiàng)目走向優(yōu)秀更進(jìn)一步。