[DOCS] 優化 Git 規範:明確 dev->demo->main 鏈路與發布時段限制
This commit is contained in:
@@ -5,36 +5,36 @@ description: 強制執行 main 分支保護與開發分支流程,確保主分
|
|||||||
|
|
||||||
# Git 分支管理與開發規範 (Git Workflow)
|
# Git 分支管理與開發規範 (Git Workflow)
|
||||||
|
|
||||||
為了確保 `main` 分支的穩定性,所有開發者與 AI 助手必須嚴格遵守以下分支管理與合併規範。
|
為了確保系統穩定性與發布紀律,所有開發者與 AI 助手必須嚴格遵守以下環境發布流程與時段限制。
|
||||||
|
|
||||||
## 1. 分支架構與用途
|
## 1. 分支架構與環境定義
|
||||||
|
|
||||||
| 分支類型 | 命名規範 | 描述 | 合併目標 |
|
| 分支 | 環境 | 用途描述 | 合併來源 |
|
||||||
| :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- |
|
||||||
| **Main (穩定版)** | `main` | 生產環境分支,僅存放穩定、已測試的代碼。**禁止直接開發新功能**。 | N/A |
|
| **`dev`** | 本機開發 | 日常開發與功能實作。 | `feature/*` |
|
||||||
| **Develop (開發版)** | `dev` | 日常開發整合分支,所有變更在此測試。 | `main` |
|
| **`demo`** | 測試/預佈署 | 鏡像生產環境。用於正式上線前的最終驗證。 | `dev` |
|
||||||
| **Feature (新功能)** | `feature/*` | 用於開發新功能。 | `dev` |
|
| **`main`** | 生產環境 | 正式版本分支。僅存放透過 `demo` 驗證後的代碼。 | `demo` |
|
||||||
| **Hotfix (緊急修正)** | `hotfix/*` | 用於修復 `main` 分支的緊急 Bug。 | `main` & `dev` |
|
|
||||||
| **Bugfix (修復)** | `bugfix/*` | 用於修復 `dev` 分支中的 Bug。 | `dev` |
|
|
||||||
|
|
||||||
## 2. Main 分支約束條款 (Mandatory)
|
## 2. 發布時段與約束 (Release Window)
|
||||||
|
|
||||||
1. **禁止隨意上功能**:`main` 分支僅接受從 `dev` 合併過來的穩定版本,或用於修復生產環境 Bug 的 `hotfix/*` 分支。
|
### Main 分支發布限制 (Mandatory)
|
||||||
2. **新功能合併時段限制**:
|
1. **標準發布時間**:週一至週四,**12:00 (中午) 之前**。
|
||||||
- **允許時段**:週一至週四,12:00(中午)之前。
|
2. **非標準時段提醒**:若於上述時段以外(週五、週末、國定假日或下班時間)欲合併至 `main`:
|
||||||
- **非允許時段**:若在上述時段以外(如週五、週末或下班時間)欲合併新功能至 `main`,**AI 助手必須主動提醒風險**,並取得使用者明確同意後方可執行。
|
- AI 助手**必須攔截並主動提示風險**(例如:週末災難風險)。
|
||||||
3. **新功能隔離**:新功能開發必須在單獨的 `feature/*` 分支進行,並先合併至 `dev` 驗證。
|
- 必須取得使用者明確書面同意(如:「我確定現在要上線」)方可執行。
|
||||||
4. **禁止直接 Commit**:嚴禁直接在 `main` 進行提交,必須透過合併流程並確保已測試。
|
3. **合併鏈路**:一般功能/修正必須先上 `demo` 測試。`main` 的程式原則上應從 `demo` 分支合併而來。
|
||||||
|
|
||||||
## 3. 開發流程 (Standard Operating Procedure)
|
## 3. 開發與修復流程 (SOP)
|
||||||
|
|
||||||
### 開發新功能
|
### 標準開發流程
|
||||||
1. 從 `dev` 建立 `feature/功能名稱`。
|
1. `feature/*` -> `dev` (隨時合併,主要測試點)。
|
||||||
2. 開發完成後合併至 `dev`。
|
2. `dev` -> `demo` (隨時合併,進行類生產環境測試)。
|
||||||
|
3. `demo` -> `main` (僅限允許時段進行,正式上線)。
|
||||||
|
|
||||||
### 修復 Main Bug (Hotfix)
|
### 緊急修復流程 (Hotfix)
|
||||||
1. 從 `main` 建立 `hotfix/Bug描述`。
|
1. 直接從 `main` 建立 `hotfix/*` 分支進行修復。
|
||||||
2. 修復後合併回 `main`,並**務必**同步合併至 `dev`。
|
2. 修復完成並通過測試後合併回 `main`。
|
||||||
|
3. **重要同步**:修復後的程式碼必須立即合併回 `demo` 與 `dev`,確保各環境修復同步。
|
||||||
|
|
||||||
## 4. 提交訊息規範 (Commit Messages)
|
## 4. 提交訊息規範 (Commit Messages)
|
||||||
|
|
||||||
@@ -42,9 +42,9 @@ description: 強制執行 main 分支保護與開發分支流程,確保主分
|
|||||||
- `[FIX]`:修復 Bug。
|
- `[FIX]`:修復 Bug。
|
||||||
- `[FEAT]`:新增功能。
|
- `[FEAT]`:新增功能。
|
||||||
- `[DOCS]`:文件更新。
|
- `[DOCS]`:文件更新。
|
||||||
- `[STYLE]`:UI/CSS/格式調整。
|
- `[STYLE]`:UI/格式調整。
|
||||||
- `[REFACTOR]`:程式碼重構。
|
- `[REFACTOR]`:重構。
|
||||||
|
|
||||||
---
|
---
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> 身為 AI 助手 (Antigravity),我在接收到任務時會優先判斷其性質。若為「新功能」且操作分支為 `main`,應主動提醒並引導切換至正確的分支開發。
|
> 身為 AI 助手 (Antigravity),我會監控合併對象與當前時間。若您的命令涉及合併至 `main` 且不在允許時段內,我會優先進行安全提醒。
|
||||||
|
|||||||
Reference in New Issue
Block a user