1、背景
在使用git時(shí),每次代碼提交都需要寫commit message作為git log以便于項(xiàng)目管理。
然而在日常的團(tuán)隊(duì)開發(fā)中,每個(gè)人的commit message千奇百怪,規(guī)范不一致,中英文混合使用等問題,會(huì)導(dǎo)致項(xiàng)目git log格式混亂、不便維護(hù)。因此,構(gòu)建一份結(jié)構(gòu)清晰、簡(jiǎn)潔優(yōu)雅的commit message規(guī)范不僅有助于高效管理項(xiàng)目、降低維護(hù)成本,也方便團(tuán)隊(duì)成員之間review、提高研發(fā)效率。
2、commit message規(guī)范
<type>[(<scope>)]: <subject>
其中,<type> 和 <subject>是必填項(xiàng),(<scope>)是選填項(xiàng)
下面對(duì)這三個(gè)模塊詳細(xì)闡述:
2.1 type
type用于聲明本次代碼提交的類型(英文,必填項(xiàng)),通常是在滿足一個(gè)技術(shù)和業(yè)務(wù)域需求的條件下的團(tuán)隊(duì)約定的有限集合,便于成員統(tǒng)一共識(shí),不宜太多導(dǎo)致類型太散、不便記憶,也不宜太少,無法有效區(qū)分。
從算法團(tuán)隊(duì)角度出發(fā),將類型限定在如下集合:
feat:新功能特性。
fix:bug修復(fù)。
perf:功能優(yōu)化,包括性能優(yōu)化、體驗(yàn)優(yōu)化等。
refactor:代碼重構(gòu)(大范圍的代碼結(jié)構(gòu)重構(gòu),不涉及代碼功能)
style:格式調(diào)整(小范圍的代碼格式調(diào)整,不涉及代碼功能)
merge:代碼分支合并
revert:代碼版本回滾
test:測(cè)試代碼變動(dòng)
doc:文檔變動(dòng)
2.2 scope
scope用于聲明本次代碼提交的影響范圍(建議英文,選填項(xiàng)),如Model層、Dao層、Service層、Controller層、View層等等。
如果涉及多個(gè)scope,可以置空或用*代替。
2.3 subject
subject用于聲明本次代碼提交的描述信息(建議中文,必填項(xiàng))。
通常控制在50個(gè)字符內(nèi),且省略句末標(biāo)點(diǎn)符號(hào)。
以上是一些基本的 commit message規(guī)范,項(xiàng)目的復(fù)雜性和業(yè)務(wù)域不同,可能會(huì)有不同的調(diào)整或補(bǔ)充,就以上規(guī)范,列舉幾個(gè)示例如下:
feat(Controller):商品屬性識(shí)別接口開發(fā)
fix(Service):入?yún)⑦吔鐧z查條件不足