# 約定式提交規範 ###### tags: `git` 約定式題提交可以對應到語意化版本的就是 `feat` 與 `fix`,其餘規則式依造 angular 風格的規範做修改,並依照團隊的習慣自訂規則。 :::info fix: 為 fix 類型 的提交,表示對程式修正了一個臭蟲 (對應到語意化版本中的 PATCH)。 feat: 為 feat 類型 的提交,表示對程式增加了一個功能 (對應到語意化版本中的 MINOR)。 ::: ## 規範 :::warning 其中`chore`與`build`的規則在定義上有點難以區分(且有些文章建議可以拿掉`chore`),但考慮到或許有其存在的可能性,故將保留,並將`chore`與`build`改為以下定義。 build:與專案建置相關的變動 => 修改建置系統流程、外部依賴、包管理、輔助工具的變動 (gulp、npm...等) chore: 不包含測試檔、src與專案建置流程相關的其他變動 => 不包含修改測試檔、src 裡的檔案與專案建置之外的其他檔案變動。(env檔、.cz.config.js...等) ::: ```javascript= * feat: 新增功能 * fix: 修復錯誤 * refactor: 重構、優化程式碼,不是新功能或是修復錯誤 * pref: 更改程式碼以提高性能 * docs: 修改文件 * test: 新增或修改現有的測試 * style: 修改程式碼的風格,不會對產品有任何的功能變動 (空白鍵、格式化、分號...等) * revert: 撤銷、復原一次 git commit * build: 修改建置系統流程、外部依賴、包管理、輔助工具的變動 (gulp、npm...等) * chore: 不包含修改測試檔、src 裡的檔案與專案建置之外的其他檔案變動。(env檔、.cz.config.js...等) ``` ```bash= npm run release -- --release-as 1.0.0 ``` ## 相關資訊 * https://www.conventionalcommits.org/zh-hant/v1.0.0-beta.4/ * https://gist.github.com/redblue9771/5c3cecca694ae396e906bef285b6c19b * https://kihifung.medium.com/git-%E7%B4%84%E5%AE%9A%E5%BC%8F%E6%8F%90%E4%BA%A4-conventional-commits-1c18953c63eb * https://www.programminghunter.com/article/6172607556/ * https://medium.com/ericlog/conventional-commits-commitlint-8d4e6387f785