---
# System prepended metadata

title: 約定式提交規範
tags: [git]

---

# 約定式提交規範
###### 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