GitLab多人协作MR流程规范模版(merge)

发布于:2025-06-22 ⋅ 阅读:(17) ⋅ 点赞:(0)

以下是一个适用于 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 合并设置(由维护者操作)

  1. 检查是否满足:

    • Tests ✅
    • Approvals ✅
    • Discussions resolved ✅
    • 无冲突
  2. 选择合并方式:

    • 快进 merge(默认)
    • 建议使用 --no-ff 保留合并记录
  3. 点击 “Merge”“Merge when pipeline succeeds”

  4. 可选择删除源分支


🛠 六、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 添加到代码仓库中。