企业里为什么喜欢使用GitLab
- 一、GitLab简介
- 二、搭建GitLab
- 三、GitLab的权限管理
- 3.1、用户注册
- 3.2、创建用户组
- 3.3、为用户组添加用户
- 3.4、为工程添加访问权限
- 四、GitLab的code review
- 五、团队知识管理
- 六、总结
一、GitLab简介
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。很多公司都是基于 GitLab 进行版本管理的。
GitLab是一种基于Web的Git仓库管理工具,提供版本控制和协作开发的功能。它集成了源代码管理(SCM)、持续集成和持续交付(CI/CD)、项目管理等功能,旨在支持整个软件开发生命周期。
GitLab的主要特点:
-
源代码管理: 提供Git仓库的托管,支持多用户协作,便于代码版本控制。
-
持续集成/持续交付(CI/CD): 内置CI/CD功能,可以自动化构建、测试和部署流程,提高开发效率。
-
项目管理: 提供问题跟踪、看板、里程碑、标签等功能,帮助团队管理项目进度和任务。
-
代码审查: 支持合并请求(Merge Request)和代码审查,促进团队间的协作与代码质量保证。
-
安全: 提供权限管理和审计日志,确保代码的安全性和合规性。
GitLab适用于各种规模的团队,从小型开源项目到大型企业级应用开发。它的全面功能使其成为DevOps实践的重要工具。
二、搭建GitLab
搭建步骤:
-
安装一些依赖软件。
sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates sudo apt-get install -y postfix # postfix发送邮件,其它的邮件配置见:https://docs.gitlab.com/omnibus/settings/smtp.html
postfix
发送邮件,其它的邮件配置见:https://docs.gitlab.com/omnibus/settings/smtp.html
。 -
添加下载源:
vim /etc/apt/sources.list.d/gitlab_gitlab-ee.list # 打开该文件添加: # deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
-
安装GitLab:
sudo apt-get update sudo apt-get install gitlab-ce
-
配置GitLab:
vim /etc/gitlab/gitlab.rb # 把external_url修改成访问的IP,更复杂的配置信息可以参考 # https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url 'http://192.168.2.129' # 开始配置 gitlab-ctl reconfigure
在这个过程中,可能会遇到类似下面这个问题,是因为
external_url
配置的url
不正确。
更多的配置可以参考https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
。reconfigure
成功会出现以下内容:
-
重启查看状态:
gitlab-ctl restart/start/status/stop # 通过gitlab-ctl help都能查看到该信息
比如
gitlab-ctl status
,会显示以下信息:
启动gitlab
后,访问http://192.168.2.129
可能出现502
错误:
此时可以使用gitlab-ctl tail
来查看gitlab
的服务日志,通过日志可以看到8080
端口被别的进程占用了:
此时需要修改gitlab
的配置信息,如下:
vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
# 然后把listen的8080端口改成8088,然后重启gitlab
把listen
的8080
端口改成8088
,然后重启gitlab
:
gitlab-ctl restart
如果不出什么意外,再次打开http://192.168.2.129
会出现下面这个页面,这个时候需要配置root
账户
的密码了:
配置账户密码成功后:
三、GitLab的权限管理
3.1、用户注册
如果我们不是gitlab
的用户,可以通过两种方式成为gitlab
的用户:
-
通过这个页面去注册
http://192.168.2.129/users/sign_in
: -
让
gitlab
的管理员去添加,如下图所示点击后进入管理页面,点击“New user
”去添加一个用户:
3.2、创建用户组
创建用户组:
之后出现下图所示的界面:
在这个界面上,有几个点需要明白:
Visibility level
:可见性,三种级别:Private
:这个用户组下的所有工程对该用户组可见。Internal
:用户组下和Internal
工程对所有的用户可见。
Public
: 用户组和public
的工程对所有人可见。Allowd to create projects
:是否允许创建工程对于用户权限引入了角色进行管理,比如guester
,Developers
,Maintainers
等等。Two-factor authentication
:类似github
的2F
验证,就是在使用gitlab
的时候必须通过2F
进行验证。
3.3、为用户组添加用户
点击groups
,然后点击用户组,就可以向该用户组添加用户了:
然后
3.4、为工程添加访问权限
选中工程,在左侧边栏会有一个setting
选项,点击该选项的members
选项:
四、GitLab的code review
- 分支合并的时候进行代码
review
。 - 对线上现有代码进行
review
。
不是所有人都可以去直接往Master
,develop
等分支去交接代码,而必须从feature
,hotfix
或者bug
分支去merge request
,经过有merge request
权限的人review
代码通过后,才能merge
到被保护的分支。设置分支权限如下所示:
每个开发人员解决了 PR 或者开发完了feature
之后,需要提交一个merge request
到master
分支。
选择源分支和目标分支,然后点击“compare branches and continue
”。
按照要求填写好,选择assignee
给谁去merge
,然后点击“submit merge request
”。
可以针对这个merge request
去给出一些评论,甚至可以在commit
代码上提交评论,然后如果没有什么问题就可以点击“merge
” 按钮。
五、团队知识管理
为什么需要知识管理?
程序员最痛恨的四件事:写注释,写文档,别人不写注释,别人不写文档。
产品需求、架构设计、接口等等文档:
核心流程和架构设计要有文档:
GitLab 需要团队知识管理的原因:
-
信息共享:团队成员可以方便地访问项目相关的文档、代码、最佳实践等知识,有助于提高团队的协作效率。
-
新成员 onboarding:良好的知识管理可以帮助新成员快速熟悉项目和团队工作流程,减少学习曲线,加速融入团队。
-
防止知识流失:随着人员变动,可能会导致关键知识的流失。系统化的知识管理可以保留重要的信息和经验,让团队在人员更替时依然高效运作。
-
提高生产力:通过文档化和流程标准化,团队成员可以减少重复的工作和问题,提高整体的生产力。
-
支持决策:系统化的知识管理能够为团队提供必要的信息支持,帮助做出更明智的决策。
-
促进创新:知识管理可以通过分享新想法和实践,激发创新思维,促进团队的持续改进。
-
增强团队文化:良好的知识管理实践能够促进团队之间的沟通与合作,增强团队的凝聚力。
六、总结
在企业中,GitLab因其强大的功能和灵活的管理而受到广泛青睐。它不仅是一个版本控制和协作开发的工具,更是支持整个软件开发生命周期的综合平台。通过搭建GitLab,团队能够实现高效的源代码管理、自动化的持续集成与持续交付,以及有效的项目管理与权限控制。
GitLab提供的代码审查机制与知识管理能力,使得团队能够在保证代码质量的同时,有效共享和传承项目知识。这种知识管理不仅能帮助新成员快速上手,而且能避免因人员变动而造成的知识流失,提升整体团队的生产力。
通过采用GitLab的功能,企业能够更好地适应快速变化的市场环境,促进团队协作和创新,建立起良好的团队文化,从而实现更高效的软件开发过程。在今后的工作中,GitLab将继续发挥其重要的作用,助力企业的数字化转型与技术进步。