Ubuntu 上 GitLab 协作流程优化方案
一 分支与合并策略
- 采用以主干为核心的轻量流程:长期分支仅保留 main(生产)与 develop(集成/测试);功能使用 feature/ 前缀,线上紧急修复使用 hotfix/。通过 Merge Request(MR) 驱动代码评审与合并,禁止直接向 main 推送。
- 在 GitLab 项目设置中开启“合并前必须通过 CI”“至少 N 个批准”“禁止合并未通过流水线”“删除源分支”等保护规则,确保质量门槛。
- 启用 合并前预检流水线 Merge Trains / Merge When Pipeline Succeeds,避免合并冲突与脏合;对跨项目变更使用 跨项目管道 统一编排。
- 使用 范围标签(Scope Labels) 管理状态流转,例如 workflow::dev、workflow::review、workflow::deployed,同一作用域内互斥,减少人工误操作。
- 命名规范与生命周期:feature 采用统一前缀与日期/负责人标识(如 feature/login_20260103_zhang),合并后定期清理已删除分支,降低仓库碎片。
二 代码评审与协作效率
- 强制 MR 模板(任务链接、变更范围、测试覆盖、回滚方案、影响面),并在 MR 描述中使用 Fixes #123 自动关联并关闭 Issue。
- 评审要点:至少 1–2 名 审阅者;要求 至少 1 个批准 且 流水线通过 方可合并;通过 评论线程 进行逐行讨论,未解决评论需阻塞合并。
- 本地提交规范化:小步快跑、频繁推送;合入前在本地将 main 最新变更 rebase 到功能分支,减少合并冲突;必要时使用 squash and merge 保持主干提交历史整洁。
- 命令行提效:安装 glab,登录后配置别名(如
git config --global alias.mr '!glab mr create'),一条命令创建 MR,减少上下文切换。
三 CI/CD 流水线设计与优化
- 阶段化流水线:按 build → test → security → deploy 分层;单元测试与集成测试分离,关键路径设置 门禁(如测试失败阻断合并)。
- 缓存与产物:依赖层使用缓存键(如 key: ${CI_COMMIT_REF_SLUG}),构建产物上传制品库(如 Nexus/Registry),避免重复构建。
- 动态触发与质量门禁:按分支/事件过滤触发,避免全量构建;提交状态回写到 GitLab(成功/失败/运行中),在 MR 界面直观可见。
- 部署策略:预生产部署后执行自动化冒烟测试;生产采用 蓝绿 或 滚动更新,失败自动 回滚;关键变更要求人工审核。
- 运行器与执行器:为 Docker 与 Shell 场景分别配置 Runner;按项目/组注册 受保护 Runner,避免共享环境干扰。
四 Ubuntu 服务器与实例性能优化
- 硬件与存储:优先 SSD/NVMe、充足内存与 CPU;分离 数据库/缓存/对象存储 磁盘,降低 I/O 争用。
- 组件与并发:在 /etc/gitlab/gitlab.rb 中按负载调优 Puma(工作进程/线程)与 Sidekiq(并发数),并合理设置 PostgreSQL shared_buffers/work_mem;调整后执行
sudo gitlab-ctl reconfigure。
- 监控与告警:启用 Prometheus + Grafana 监控 Puma/Redis/PostgreSQL/Gitaly 指标,配置阈值告警;小规模或演示环境可按需关闭非核心监控组件以降低资源占用。
- 存储与清理:大文件使用 Git LFS;定期执行仓库 GC 与 容器镜像清理,减少空间膨胀;对象存储用于附件/备份等非结构化数据。
五 落地检查清单
| 优化项 |
关键动作 |
验证方式 |
| 分支策略 |
main/develop 受保护;feature/hotfix 命名规范;MR 模板与关联 Issue |
创建 MR 能否仅由保护规则通过 |
| 合并控制 |
必须 CI 通过;需 N 个批准;禁止直接推 main;可删除源分支 |
尝试违规合并是否被拦截 |
| 预检与跨项目 |
启用 Merge Trains/当流水线成功时合并;跨项目管道编排 |
观察合并队列与跨项目作业状态 |
| 评审效率 |
glab 一键 MR;评论全部已解决才可合并 |
本地 git mr 是否成功创建 MR |
| 流水线质量 |
分层测试;缓存/产物;状态回写;蓝绿/回滚 |
MR 显示流水线状态与产物下载 |
| 资源与监控 |
Puma/Sidekiq/PG 调优;Prometheus/Grafana 仪表盘;定期 GC/LFS |
监控面板无持续告警;构建耗时下降 |
以上方案覆盖从流程规范到工程效率与实例性能的关键环节,可按团队规模分阶段落地,优先保障“质量门禁 + 快速反馈 + 稳定交付”。