以下是一個適用于 GitLab 多人協作的 MR 流程規范模板,涵蓋分支策略、MR 創建流程、沖突處理、審查要求和 CI/CD 設置。可以直接復制到團隊 Wiki 或文檔中使用。
📘 一、分支策略
main ← 線上生產分支,僅從 release 合并
dev ← 日常集成功能分支,所有功能分支從這里拉,合回這里
release/X.Y ← 發布候選分支(選用)
feature/* ← 功能分支(如 feature/login)
bugfix/* ← 緊急修復分支(從 dev 或 release 拉出)
feature
/bugfix
分支命名格式:feature/簡短描述
、bugfix/編號-描述
- 避免跨任務合并,不要在一個分支上做多件事
🚀 二、MR 提交流程
1. 創建功能分支
git checkout dev
git pull origin dev
git checkout -b feature/your-task
2. 任務開發與本地測試
git add .
git commit -m "feat(task): 增加 XX 功能"
3. 提交并新建 MR
git push -u origin feature/your-task
-
在 GitLab 上新建 MR:
- 源分支:
feature/your-task
- 目標分支:
dev
- 填寫標題(統一前綴如
[Feature] 登錄功能
)、描述、關聯 issue、分配審查者
- 源分支:
🛡 三、MR 審查規范
- ? 至少 1 名同事 approval
- ? 自動 CI Pipeline 必須通過
- ? 確認沒有沖突
- ? 所有 discussion resolved(可啟用設置
Require all threads to be resolved
)
審查內容重點:
- 代碼風格與命名規范
- 功能覆蓋與邏輯準確性
- 安全性、性能、可維護性
🧩 四、沖突預防與處理
🔁 定期同步 dev 分支:
# 在開發過程中:
git fetch origin
git checkout feature/your-task
git merge origin/dev
# 沖突時手動解決并 commit,再 push
?? MR 中發現沖突:
git checkout dev
git pull origin dev
git checkout feature/your-task
git merge dev
# 解決沖突后:
git add .
git commit -m "fix: 解決與 dev 的合并沖突"
git push
- PR 界面會 On-the-fly 更新,提示“沖突已解決,準備合并”
🟢 五、MR 合并設置(由維護者操作)
-
檢查是否滿足:
- Tests ?
- Approvals ?
- Discussions resolved ?
- 無沖突
-
選擇合并方式:
- 快進 merge(默認)
- 或 建議使用
--no-ff
保留合并記錄
-
點擊 “Merge” 或 “Merge when pipeline succeeds”
-
可選擇刪除源分支
🛠 六、CI/CD 與保護分支設置
在 GitLab 項目設置中啟用:
- ?
Only allow merge when pipeline succeeds
- ?
Require merging request approval
- ?
Require all threads to be resolved
- ? 關閉
Fast-forward merge
(可選)
推薦 CI 策略:
- 單元 + 集成 + 靜態檢查
- Merge MR 時觸發構建發布到測試環境
- Release 使用
release/X.Y
分支并觸發預發布和生產發布流程
🧨 七、示例流程圖(文本版)
[dev] ←────────────┐↑ ││ git merge MR ││ ↓
[feature/A] → MR → [review + CI] → approve → merge → [dev]↑ ^│ git merge dev │ runs CI & testing└────────── git pull ───┘
🎯 八、成功提交 MR Checklist
- 分支命名規范
- 已同步最新 dev 分支
- 編寫清晰 MR 標題與描述
- 關聯 issue 和審查人
- CI 全部通過
- 沒有沖突
- 審查通過,所有討論已解決
📎 附錄:常用命令
# 獲取 dev 最新 + 合并到功能分支
git checkout feature/branch
git fetch origin
git merge origin/dev# 重新推送以更新 MR
git push# 刪除 merged 特性分支
git branch -d feature/branch
git push origin --delete feature/branch
這個模板可以復制到團隊 Wiki,或作為 README 添加到代碼倉庫中。