h3. 清晰的代碼提交規(guī)范米绕,有利于我們代碼方便的查找和維護馋艺。可以約定提交格式如下:
--------------------- 格式start -----------------------
<type>[scope]: <subject>
空一行
[可選的正文 body]
空一行
[可選的頁腳 footer]
---------------------- 格式end-----------------------
-
type:
提交類型碱鳞,必填項窿给,詳細可以分為:
feat: 新功能feature
fix:修復bug
docs: 文檔注釋
style:代碼格式率拒,不影響代碼運行的變動
refactor:重構(gòu)、優(yōu)化(既不增加新功能也不修復bug)
perf:性能優(yōu)化
test:增加測試
chore:構(gòu)建過程或者輔助工具的變動
revert:回退
build:打包
ci:與ci 持續(xù)集成有關的改動
temp:臨時代碼角撞,不計入 CHANGELOG勃痴,比如必須部署到某種環(huán)境才能測試的變更。如測試真機上 transparent title 啟動參數(shù)是否設置成功
- scope:
scope也是必填項劣领,用于描述改動范圍铁材,格式一般為 項目名/模塊名 例如:
node-pc/common
如果一次commit修改多個模塊奕锌,建議拆分為多次commit村生,以便更好的追蹤和維護。
- subject:
填寫簡單的提交說明缴守,言簡意賅镇辉,不超過50字,可以清晰明了的指出修改的意圖忽肛。
- body:
選填烂斋,用于填寫更詳細的描述。主要描述改動之前的情況和修改動機罕模,對于小的修改可以沒有帘瞭,但是重大需求淑掌、更新等必須添加body來作說明。
- footer:
選填蝶念,用填寫關聯(lián)的issus抛腕,或者BREAK CHANGE.
必須是大寫,表示引入了破壞性 API 變更媒殉,通常是一個大版本的改動担敌,BREAKING CHANGE: 之后必須提供描述,下面一個包含破壞性變更的提交示例:
feat: allow provided config object to extend other configs
BREAKING CHANGE:
extendskey in config file is now used for extending other config files
當然廷蓉,一方面規(guī)范需要大家都自覺遵守全封,但是使用現(xiàn)有的工具來約束規(guī)范可以達到事半功倍的效果。所以針對不同的開發(fā)環(huán)境可以選擇合適自己的代碼提交規(guī)范格式化工具桃犬,利用git hooks來約束提交規(guī)范售貌。 __