1、背景
在使用git時吠谢,每次代碼提交都需要寫commit message作為git log以便于項目管理。
然而在日常的團隊開發(fā)中,每個人的commit message千奇百怪静暂,規(guī)范不一致,中英文混合使用等問題谱秽,會導致項目git log格式混亂洽蛀、不便維護。因此疟赊,構(gòu)建一份結(jié)構(gòu)清晰郊供、簡潔優(yōu)雅的commit message規(guī)范不僅有助于高效管理項目、降低維護成本听绳,也方便團隊成員之間review颂碘、提高研發(fā)效率。
2椅挣、commit message規(guī)范
<type>[(<scope>)]: <subject>
其中头岔,<type> 和 <subject>是必填項,(<scope>)是選填項
下面對這三個模塊詳細闡述:
2.1 type
type用于聲明本次代碼提交的類型(英文鼠证,必填項)峡竣,通常是在滿足一個技術(shù)和業(yè)務域需求的條件下的團隊約定的有限集合,便于成員統(tǒng)一共識量九,不宜太多導致類型太散适掰、不便記憶,也不宜太少荠列,無法有效區(qū)分类浪。
從算法團隊角度出發(fā),將類型限定在如下集合:
feat:新功能特性肌似。
fix:bug修復费就。
perf:功能優(yōu)化,包括性能優(yōu)化川队、體驗優(yōu)化等力细。
refactor:代碼重構(gòu)(大范圍的代碼結(jié)構(gòu)重構(gòu),不涉及代碼功能)
style:格式調(diào)整(小范圍的代碼格式調(diào)整固额,不涉及代碼功能)
merge:代碼分支合并
revert:代碼版本回滾
test:測試代碼變動
doc:文檔變動
2.2 scope
scope用于聲明本次代碼提交的影響范圍(建議英文眠蚂,選填項),如Model層斗躏、Dao層逝慧、Service層、Controller層、View層等等笛臣。
如果涉及多個scope栅干,可以置空或用*代替。
2.3 subject
subject用于聲明本次代碼提交的描述信息(建議中文捐祠,必填項)碱鳞。
通常控制在50個字符內(nèi)踱蛀,且省略句末標點符號窿给。
以上是一些基本的 commit message規(guī)范,項目的復雜性和業(yè)務域不同率拒,可能會有不同的調(diào)整或補充崩泡,就以上規(guī)范,列舉幾個示例如下:
feat(Controller):商品屬性識別接口開發(fā)
fix(Service):入?yún)⑦吔鐧z查條件不足