開源社區已經爲我們總結出了一套名爲 Conventional Commits 的書寫規範。很多流行的開源項目都使用了這套規範,如 Karma,Angular 等。其規定的格式如下:
<type>[optional scope]: <description>
[optional body]
[optional footer]
type :用於表明我們這次提交的改動類型,是新增了功能?還是修改了測試代碼?又或者是更新了文檔?開源社區目前總結出了以下 11 種類型:
- build:主要目的是修改項目構建系統(例如 glup,webpack,rollup 的配置等)的提交
- ci:主要目的是修改項目繼續集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
- docs:文檔更新
- feat:新增功能
- fix:bug 修復
- perf:性能優化
- refactor:重構代碼(既沒有新增功能,也沒有修復 bug)
- style:不影響程序邏輯的代碼修改(修改空白字符,補全缺失的分號等)
- test:新增測試用例或是更新現有測試
- revert:回滾某個更早之前的提交
- chore:不屬於以上類型的其他類型
optional scope:一個可選的修改範圍。用於標識此次提交主要涉及到代碼中哪個模塊。根據項目實際情況填寫即可,最好在項目中規定好模塊列表,保持一致性。
description:一句話描述此次提交的主要內容,做到言簡意賅。
optional body 和 optional footer 通常我們都不會用到,此處不再贅述。