# 套裝軟體專案的 Git 分支管理實務分享
在多人協作的 Git 專案中,**如何設計清晰的分支管理流程**,往往直接影響到開發效率與產品穩定性。這篇文章分享我們公司在實務上採用的「四分支策略」,搭配出貨與雲端部署的實際情境,供大家參考。
---
## 🎯 我們的四大分支角色
| 分支名稱 | 用途 | 對象 | 備註 |
|----------|------|------|------|
| `dev` | 日常開發 | RD | 功能開發、debug 都在這裡進行 |
| `test` | 測試驗證 | QC | 開發完成後合併到此,由 QA 進行測試 |
| `main` | 對外穩定版 | PM / 客戶 | 通過測試後合併進來,作為候選正式版本 |
| `cloud` | 雲端部署用 | DevOps | 從穩定 `main` 分支產出,搭配雲端設定進行部署 |
---
## 🔄 實際開發流程
1. **RD 在 `dev` 分支開發功能**
所有功能分支從 `dev` 分出,開發完成後 PR 回 `dev`。
2. **定期將 `dev` 合併進 `test`,交由 QC 測試**
測試團隊在 `test` 分支上驗證功能是否符合規格。
3. **測試通過後 PR 合併進 `main`,作為出貨候選版本**
`main` 為準穩定版本,可能會交給客戶、PM 試用或出貨。
4. **當 `main` 經實際運行一段時間確認穩定後**
→ **從 `main` 分出 `cloud` 分支**,進行雲端版本的專屬部署。
---
## ☁️ 為什麼還要有 `cloud` 分支?
很多人會問:**都已經有 `main` 了,為什麼還要分出 `cloud`?**
因為我們的雲端版本是提供給 **多個客戶共用的租賃版本(SaaS 模式)**,一旦上線後出現問題,影響的就不只是單一客戶,而是整批用戶,會直接導致大量客服回報與信任危機。
因此我們採用以下做法來確保雲端部署的穩定性:
- `cloud` 是實際部署到雲端環境的版本,必須 **絕對穩定且經實戰驗證**。
- `cloud` 分支源自 `main`,只會在 `main` 經過一段時間運行、確認穩定後才分出。
- `cloud` 可能會包含特定於雲端環境的設定與部署配置。
- 使用獨立的 `cloud` 分支,也讓我們能針對雲端部署做精細控制,而不干擾到一般客戶的出貨流程。
換句話說,`cloud` 是從 `main` 精選出的 **最終穩定版本**,再加上雲端專用設定,確保對大量租戶的交付品質。
---
## ✅ 這樣設計的好處
- 明確區分開發、測試、出貨、部署等不同階段。
- 減少主幹污染與出貨風險。
- 讓各角色(RD、QC、PM、DevOps)都有清晰的作業目標。
- 保留每個版本的可回溯歷史,方便維運與除錯。
---
## 🧩 總結
這套四分支策略讓我們的開發與部署流程更有條理,不再手忙腳亂:
```
dev → test → main → cloud
```
這不只是一套分支規則,更是一種**團隊協作的共識與節奏**。
---
你也可以依照自己的團隊規模與工作流程做出調整。如果你也有不同的 Git 流程設計,也歡迎留言交流!
---