---
# System prepended metadata

title: Git Flow 流程
tags: [SOP, ' PHP', ' 專案']

---

---
title: Git Flow 流程
tags: SOP, 專案, PHP
GA: UA-54884750-6
---

<!-- reference: https://hackmd.io/Ww6X0NVaTwu35jh74FNdpg -->

# Git Flow 流程
[TOC]

# 功能開發/修正等

## 開始開發

1. 於 Redmine/GitLab 上開啟 Issue。
    - 若有 SRS，Issue 標題需與 SRS 功能標題一致。
    - 若無 SRS 或為修正，Issue 標題請明確簡短表達功能或問題。
2. 於 GitLab 上開啟 Merge Request。
    - 標題請依照 [Merge Request 標題規範](#Merge-Request-標題規範) 撰寫。
    - 請於 MR 的 Description 欄位最後寫 `Closes #issue`，#issue 請替換為對應之 GitLab Issue 編號。

## Merge 流程

1. 開 Merge Request，並將 redmine issue 設定為「已完成」。
2. 請人協助 Code Review 與實際切至分支測試功能正常。
    1. 通過則點擊 Approve issue。
    2. 若測試不通過，則回 Redmine 回應原因，並將 issue 設定為「已回應」。
3. 開發者自行 Merge 入分支。
4. 更新測試站，若無 CD 整合，手動更新測試站。
5. 將 issue 設定為「已結束」。

## Code Review 流程

1. 查看 Merge Request 標題是否正確
2. 查看 Merge 來源與對象是否正確
3. 查看 Commit 訊息是否正確
4. 查看 Changes 的內容是否有動到不該動的程式碼等等問題

## Merge Request 標題規範

Merge Request 標題需以以下規則撰寫：

```
前墜: issue 標題
```

### 前墜

| 名稱 | 說明 | 範例狀況 |
| :-: | :-: | :-: |
| feat | 新功能開發 |  |
| fix | 問題修正 |  |
| refactor | 重構程式碼 |  |

### 範例

- feat: 前台看板功能
- fix: 前台看板身分顯示錯誤
- refactor: 看板功能
