gitlab 是基于 git 开发的一体化 DevOps 代码托管平台,核心作用就是存放团队项目源码,做版本管理,同时集成代码评审 持续集成 持续部署 项目工单管理等全套研发流程功能,很多人会把它和 github 混淆,github 偏向公开开源社区,gitlab 最大特点是支持私有化部署,企业可以把整套系统部署在自己公司内网服务器,源码不会放到外部公网平台,非常适合对代码安全 数据保密要求高的公司,它底层依然使用 git 版本控制,支持多人协作开发,不同开发者可以拉取代码,修改之后提交合并,通过分支管理并行开发,不会互相覆盖代码,除了基础代码仓库功能,它内置的 CI/CD 流水线可以实现代码提交之后自动编译 自动测试 自动打包部署,把原来人工重复操作自动化,还自带 issue 工单 里程碑 看板,用来跟踪需求 bug 任务,把项目管理和代码开发整合在同一个平台,不用单独切换多个软件,现在分为社区免费版 gitlab ce,还有付费企业版 gitlab ee,企业版增加高级权限管控 安全扫描 技术支持等增值功能。
基础信息表
| 项目 | 内容 |
|---|---|
| 名称 | gitlab |
| 底层技术 | git |
| 核心定位 | 一体化 DevOps 平台 |
| 版本类型 | ce 社区免费版 ee 企业付费版 |
| 部署方式 | 公有云实例 私有化内网部署 |
| 核心对象 | 代码仓库 分支 流水线 工单 |
核心功能分项说明
1 代码仓库托管
创建项目仓库,支持私有仓库和公开仓库,所有代码版本历史永久留存,可以回退到任意历史提交版本,支持分支保护,禁止普通成员直接往主分支推送代码。
2 多人协作与合并请求 MR
开发者在独立分支开发,完成之后提交合并请求,也就是 MR,其他同事可以在线查看代码改动,做代码评审,提出修改意见,审核通过之后才合并到主分支,这是团队开发最重要的流程。
3 CI/CD 持续集成持续部署
内置流水线编辑器,编写 yml 配置文件,代码 push 或者提交 MR 的时候自动触发任务,自动执行单元测试 代码编译 镜像打包 部署到测试环境或者生产环境,减少人工部署出错。
4 项目管理模块
内置 issue 任务工单,bug 追踪,里程碑,看板,wiki 项目文档,团队可以在这里记录需求,分配任务,跟踪项目进度。
5 权限与安全管控
支持项目组 角色权限划分,可以设置开发者 维护者 管理员不同权限,企业版还支持静态代码安全扫描,密钥检测,合规审计日志。
6 制品库
可以存储编译之后的包,docker 镜像,maven 包,npm 包这类构建产物,统一管理项目制品。
gitlab 和 github 对比清单
| 对比项 | gitlab | github |
|---|---|---|
| 私有化部署 | 原生支持内网私有化部署 | 私有化部署需要额外方案 |
| CI/CD | 原生深度集成 | actions 插件形式集成 |
| 适用场景 | 企业内部研发 涉密项目 | 开源项目 公网协作 |
| 版本 | ce 免费 ee 付费 | 免费版 付费企业版 |
典型使用场景
互联网公司内部项目 政企涉密软件开发 学校实训项目 自研系统团队,因为代码不能对外公开,所以选择内网部署 gitlab,团队所有开发人员通过内网地址访问平台,代码全程不出公司服务器,满足安全合规要求。
综合来说,gitlab 不只是单纯存代码的仓库,它是把代码版本管理 代码评审 自动化构建部署 项目管理整合在一起的研发一体化平台,企业选择它主要看重私有化部署能力和完整 DevOps 流水线能力。
【常见问题】
问题 1 gitlab 是干什么用的 它必须部署在内网吗
回答 1 gitlab 是干什么用的,gitlab 不是必须部署在内网,它也有官方公有云实例,但是它最核心优势就是支持私有化内网部署,涉密企业一般都会选择内网部署 gitlab。
问题 2 gitlab 是干什么用的 MR 是什么意思
回答 1 gitlab 是干什么用的,MR 也就是合并请求,是 gitlab 里面代码评审合并的核心功能,开发者提交分支之后发起 MR,经过审核之后才能合并主分支,是团队协作开发关键流程。
问题 3 gitlab 是干什么用的 ce 和 ee 版本差别是什么
回答 1 gitlab 是干什么用的,ce 是 gitlab 社区免费版本,基础代码仓库和基础 CI 功能齐全,ee 是企业付费版本,增加高级安全扫描 审计 专属技术支持等企业级功能。
【免责申明】
本文 gitlab 是干什么用的内容属于技术科普,产品功能会随官方版本更新迭代,具体功能权限以官方最新文档为准,私有化部署需要遵守官方授权协议,因部署使用不当产生合规风险,由使用者自行承担相关责任。


