GitLab 项目创建与分支管理全流程

前言

在企业团队中,规范的 Git 流程和分支管理非常重要。本文将以 新建项目 → 上传框架代码 → 分支保护 → 多人协作开发 为线索,讲解完整流程,确保团队协作安全高效。


一、新建 GitLab 项目

  1. 登录 GitLab,点击 New Project → Create blank project
  2. 填写项目名称,例如 xxx-framework
  3. 不要勾选 Initialize repository(不初始化 README),保持空仓库
  4. 创建项目完成后,复制仓库的 HTTPS 或 SSH 地址

二、本地准备代码

假设已有框架代码,需要上传到 GitLab:

  1. 清理原项目不需要的文件:
bash 复制代码
cd 原框架目录
rm -rf .git
rm -rf .idea
rm -rf target
  1. Clone GitLab 空仓库到本地:
bash 复制代码
git clone <仓库地址>
cd xxx-framework
  1. 将框架代码复制到 clone 的目录下(注意不要覆盖 .git):
bash 复制代码
cp -r /path/to/your/framework/* .
  1. 建议添加 .gitignore 文件(可以从此前的项目中复制),至少包含:
gitignore 复制代码
target/
.idea/
*.log
*.iml

三、提交 Initial commit

  1. 初始化提交:
bash 复制代码
git add .
git commit -m "Initial commit"
  1. 推送到远端 main 分支:
bash 复制代码
git branch -M main
git push -u origin main

此时仓库状态:

  • main 分支已有干净框架代码
  • 本地和远端同步完成

四、新建 dev 分支

  1. 在本地基于 main 创建 dev 分支:
bash 复制代码
git checkout -b dev
git push -u origin dev

此时仓库状态:

  • main ✅
  • dev ✅(已推送到远端)

五、设置分支保护

进入 Settings → Repository → Protected Branches,进行如下配置:

5.1 main 分支(生产稳定分支)

  • 允许合并(Allowed to merge):Maintainers
  • 允许推送和合并(Allowed to push):No one
  • 允许强制推送(Force push):关闭

⚡ 作用:

  • 禁止直接 push main
  • 只能通过 Merge Request(MR)合并
  • 保证生产分支安全

5.2 dev 分支(开发主线分支)

  • 允许合并(Allowed to merge):Maintainers
  • 允许推送和合并(Allowed to push):No one
  • 允许强制推送(Force push):关闭

⚡ 作用:

  • 开发者不能直接 push dev
  • 必须通过 MR 合并到 dev
  • 保证多人协作安全

六、团队协作流程

假设有多人开发,建议采用如下分支策略:

复制代码
dev_/* → dev → main

6.1 开发者工作流程(dev_姓名命名规范)

  1. 从 dev 分支拉取最新代码
bash 复制代码
git checkout dev
git pull origin dev

  1. 基于 dev 创建自己的开发分支

分支命名规则:dev_开发者姓名

例如,开发者叫 zhangsan

bash 复制代码
git checkout -b dev_zhangsan

开发者叫 lisi

bash 复制代码
git checkout -b dev_lisi

  1. 在自己的 dev_ 分支开发完成后提交到远端
bash 复制代码
git add .
git commit -m "feat: 完成XXX模块开发"
git push origin dev_zhangsan

注意:每个开发者只 push 自己的 dev_ 分支,不允许直接 push dev 主分支


  1. 在 GitLab 上发起 Merge Request(MR)
text 复制代码
dev_zhangsan → dev
  • MR 必须经过 CI 成功
  • MR 必须由 Maintainer 审核通过

  1. 由 Maintainer 合并 MR 到 dev 分支
  • 确保 dev 分支始终保持稳定
  • 其他开发者可以基于最新 dev 分支创建自己的 dev_姓名 分支继续开发

6.2 发布到 main

  1. dev 分支经过测试稳定后

  2. 创建 MR:

    dev → main

  3. Maintainer 审核通过后合并到 main

⚡ 这样可以保证 main 始终稳定,dev 保持最新开发状态


七、合并请求配置建议

Merge Request Settings 中:

  • 合并方法(Merge method):Merge commit(保留完整历史)
  • 合并时压缩提交:根据情况选择
  • 合并检查(Merge checks):勾选 Pipeline 必须成功、必须审批、禁止冲突

Tip: 对于多人开发团队,这是保证代码质量和分支稳定的关键步骤


八、小结

通过以上步骤,你的团队仓库已经形成了一个安全、高效、可审计的 GitLab 流程

  1. main 分支稳定,不允许直接 push
  2. dev 分支受控,必须 MR 才能合并
  3. 开发者在 feature 分支开发,经过审核后合并到 dev
  4. dev 稳定后合并到 main,保证发布安全

这样,团队协作规范化,减少冲突和事故,也方便新成员快速上手。

相关推荐
AOwhisky1 天前
云原生 DevOps 工具链从入门到实战(第一期)——DevOps概述与GitLab部署——从理念到工具落地
运维·ci/cd·云原生·gitlab·开发·devops
不厌 -_-2 天前
gitlab中怎么创建MR提交模板
gitlab·mr
酿情师3 天前
Gitlab 任意文件读取漏洞(CVE-2016-9086)
gitlab
糖果罐子♡4 天前
TortoiseGit 首次上传本地工程至已初始化的GitLab仓库教程
gitlab
Byron Loong4 天前
【Git】如何检查 Ubuntu 系统上 gitLab 是否开启
git·ubuntu·gitlab
QN1幻化引擎5 天前
SFA 信号场注意力:用8KB参数换248x KV Cache压缩,边缘设备也能跑长序列
人工智能·算法·gitee·gitlab
阿里云云原生5 天前
研发福音:云效 AI 智能评审正式支持 GitLab 集成,VPC 内网即可实现自动审阅
gitlab
这个需求做不了8 天前
Jenkins自动化构建与CI/CD流水线,并配置GitLab
java·ci/cd·自动化·gitlab·jenkins
qq_452396239 天前
第六篇:《GitLab CI 进阶:多环境部署与环境变量管理》
git·ci/cd·gitlab
考虑考虑10 天前
git中的tag
git·gitlab·github