---
# System prepended metadata

title: Git Commit Style Guide
tags: [eGroupAI 開發規範]

---

# Git Commit Style Guide
###### tags: `eGroupAI 開發規範`
# Commit Message 規範組成

`Header: <type>(<scope>): <subject>`

```
- type: 代表 commit 的類別：feat, fix, docs, style, refactor, test, chore，必要欄位。
- scope 代表 commit 影響的範圍，例如資料庫、控制層、模板層等等，視專案不同而不同，為可選欄位。
- subject 代表此 commit 的簡短描述，不要超過 50 個字元，結尾不要加句號，為必要欄位。
```

`Body: 72-character wrapped. This should answer:`

```
- Body 部份是對本次 Commit 的詳細描述，可以分成多行，每一行不要超過 72 個字元。
- 說明程式碼變動的項目與原因，還有與先前行為的對比。
```

`Footer:` 

```
 - 填寫任務編號（如果有的話）.
 - BREAKING CHANGE（可忽略），記錄不兼容的變動，
   以 BREAKING CHANGE: 開頭，後面是對變動的描述、以及變動原因和遷移方法。
```

## type 只允許使用以下類別：

- feat: 新增/修改功能 (feature)。
- fix: 修補 bug (bug fix)。
- docs: 文件 (documentation)。
- style: 格式 (不影響程式碼運行的變動 white-space, formatting, missing semi colons, etc)。
- refactor: 重構 (既不是新增功能，也不是修補 bug 的程式碼變動)。
- perf: 改善效能 (A code change that improves performance)。
- test: 增加測試 (when adding missing tests)。
- chore: 建構程序或輔助工具的變動 (maintain)。
- revert: 撤銷回覆先前的 commit 例如：revert: type(scope): subject (回覆版本：xxxx)。

---

# **範例 fix：**

```
fix: 自訂表單新增/編輯頁面，修正離開頁面提醒邏輯

問題：
1. 原程式碼進入新增頁面後，沒做任何動作之下，離開頁面會跳提醒
2. 原程式碼從新增/編輯頁面回到上一頁後（表單列表頁面），離開頁面會跳提醒

原因：
1. 新增頁面時，頁面自動建立空白題組會調用 sort_item，造成初始化 unload 事件處理器。
2. 回到上一頁後，就不需要監聽 unload 事件，應該把 unload 事件取消。

調整項目：
1. 初始化 unload 事件處理器：排除新增表單時，頁面自動建立空白題組調用 sort_item 的情境
2. 回到上一頁後，復原表單被異動狀態且清除 unload 事件處理器

issue #1229
```

### 參考網站：

[](https://wadehuanglearning.blogspot.com/2019/05/commit-commit-commit-why-what-commit.html?fbclid=IwAR3yrA9mPViknS0A8Pysdh7KgO11ZDCzbP-AfhIonW5CYrJuI4tEc3z0Da0)