以下是一个适用于 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 添加到代码仓库中。