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,保证发布安全

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

相关推荐
林鸿群1 天前
Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)
linux·ubuntu·gitlab·私有部署·代码托管·ubuntu 26.04·omnibus
ascarl20102 天前
IDEA 一直弹 GitLab 登录,VS Code 却能正常 `git push`?问题排查记录
git·gitlab·intellij-idea
企鹅郁金香4 天前
Gitlab和Confluence和Svn的备份
svn·gitlab·confluence·gitlab备份·svn备份·confluence备份
barbyQAQ4 天前
GitLab CI/CD 基本用法指南
java·ci/cd·gitlab
云中飞鸿5 天前
git、svn;TortoiseGit、TortoiseSVN;gitlab、github、bitbucket、bamboo有什么关系?
git·svn·gitlab
007张三丰8 天前
掌握核心!Git最常用的15个命令行:从入门到实战详解
git·gitlab·github·git命令行·常用命令行
人间打气筒(Ada)9 天前
gitlab私有仓库搭建
运维·gitlab·项目实战·devops·代码部署实战·版本控制仓库
黑蛋同志9 天前
Rocky Linux 10 上搭建 社区版 GitLab CE
linux·运维·gitlab
gpio_0110 天前
自建gitlab服务器并用sakurafrp穿透
运维·服务器·gitlab