探索GitLab:从搭建到高效使用的实用指南

一、GitLab简介

GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。很多公司都是基于 GitLab 进行版本管理的。
在这里插入图片描述

GitLab是一种基于Web的Git仓库管理工具,提供版本控制和协作开发的功能。它集成了源代码管理(SCM)、持续集成和持续交付(CI/CD)、项目管理等功能,旨在支持整个软件开发生命周期。

GitLab的主要特点:

  1. 源代码管理: 提供Git仓库的托管,支持多用户协作,便于代码版本控制。

  2. 持续集成/持续交付(CI/CD): 内置CI/CD功能,可以自动化构建、测试和部署流程,提高开发效率。

  3. 项目管理: 提供问题跟踪、看板、里程碑、标签等功能,帮助团队管理项目进度和任务。

  4. 代码审查: 支持合并请求(Merge Request)和代码审查,促进团队间的协作与代码质量保证。

  5. 安全: 提供权限管理和审计日志,确保代码的安全性和合规性。

GitLab适用于各种规模的团队,从小型开源项目到大型企业级应用开发。它的全面功能使其成为DevOps实践的重要工具。

二、搭建GitLab

搭建步骤:

  1. 安装一些依赖软件。

    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

  2. 添加下载源:

     vim /etc/apt/sources.list.d/gitlab_gitlab-ee.list 
     # 打开该文件添加:
     # deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
    
  3. 安装GitLab:

     sudo apt-get update
     sudo apt-get install gitlab-ce
    
  4. 配置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-gitlabreconfigure成功会出现以下内容:
    在这里插入图片描述

  5. 重启查看状态:

    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

在这里插入图片描述

listen8080端口改成8088,然后重启gitlab

gitlab-ctl restart

如果不出什么意外,再次打开http://192.168.2.129会出现下面这个页面,这个时候需要配置root账户
的密码了:
在这里插入图片描述
配置账户密码成功后:

在这里插入图片描述

三、GitLab的权限管理

3.1、用户注册

如果我们不是gitlab的用户,可以通过两种方式成为gitlab的用户:

  1. 通过这个页面去注册http://192.168.2.129/users/sign_in在这里插入图片描述

  2. gitlab的管理员去添加,如下图所示点击后进入管理页面,点击“New user”去添加一个用户:在这里插入图片描述
    在这里插入图片描述

3.2、创建用户组

创建用户组:
在这里插入图片描述在这里插入图片描述

之后出现下图所示的界面:

在这里插入图片描述

在这个界面上,有几个点需要明白:

  • Visibility level:可见性,三种级别:
    • Private :这个用户组下的所有工程对该用户组可见。
    • Internal :用户组下和Internal工程对所有的用户可见。
  • Public : 用户组和public的工程对所有人可见。
  • Allowd to create projects:是否允许创建工程对于用户权限引入了角色进行管理,比如guesterDevelopersMaintainers等等。
  • Two-factor authentication :类似github2F验证,就是在使用gitlab的时候必须通过2F进行验证。

3.3、为用户组添加用户

点击groups,然后点击用户组,就可以向该用户组添加用户了:
在这里插入图片描述
然后
在这里插入图片描述

3.4、为工程添加访问权限

选中工程,在左侧边栏会有一个setting选项,点击该选项的members选项:
在这里插入图片描述

四、GitLab的code review

  1. 分支合并的时候进行代码review
  2. 对线上现有代码进行review

在这里插入图片描述
不是所有人都可以去直接往Masterdevelop等分支去交接代码,而必须从featurehotfix或者bug分支去merge request,经过有merge request权限的人review代码通过后,才能merge到被保护的分支。设置分支权限如下所示:
在这里插入图片描述

每个开发人员解决了 PR 或者开发完了feature之后,需要提交一个merge requestmaster分支。

在这里插入图片描述

选择源分支和目标分支,然后点击“compare branches and continue”。
在这里插入图片描述

按照要求填写好,选择assignee给谁去merge,然后点击“submit merge request”。
在这里插入图片描述
可以针对这个merge request去给出一些评论,甚至可以在commit代码上提交评论,然后如果没有什么问题就可以点击“merge” 按钮。
在这里插入图片描述

五、团队知识管理

为什么需要知识管理?

程序员最痛恨的四件事:写注释,写文档,别人不写注释,别人不写文档。
在这里插入图片描述

产品需求、架构设计、接口等等文档:

在这里插入图片描述
核心流程和架构设计要有文档:
在这里插入图片描述
GitLab 需要团队知识管理的原因:

  1. 信息共享:团队成员可以方便地访问项目相关的文档、代码、最佳实践等知识,有助于提高团队的协作效率。

  2. 新成员 onboarding:良好的知识管理可以帮助新成员快速熟悉项目和团队工作流程,减少学习曲线,加速融入团队。

  3. 防止知识流失:随着人员变动,可能会导致关键知识的流失。系统化的知识管理可以保留重要的信息和经验,让团队在人员更替时依然高效运作。

  4. 提高生产力:通过文档化和流程标准化,团队成员可以减少重复的工作和问题,提高整体的生产力。

  5. 支持决策:系统化的知识管理能够为团队提供必要的信息支持,帮助做出更明智的决策。

  6. 促进创新:知识管理可以通过分享新想法和实践,激发创新思维,促进团队的持续改进。

  7. 增强团队文化:良好的知识管理实践能够促进团队之间的沟通与合作,增强团队的凝聚力。

六、总结

在企业中,GitLab因其强大的功能和灵活的管理而受到广泛青睐。它不仅是一个版本控制和协作开发的工具,更是支持整个软件开发生命周期的综合平台。通过搭建GitLab,团队能够实现高效的源代码管理、自动化的持续集成与持续交付,以及有效的项目管理与权限控制。

GitLab提供的代码审查机制与知识管理能力,使得团队能够在保证代码质量的同时,有效共享和传承项目知识。这种知识管理不仅能帮助新成员快速上手,而且能避免因人员变动而造成的知识流失,提升整体团队的生产力。

通过采用GitLab的功能,企业能够更好地适应快速变化的市场环境,促进团队协作和创新,建立起良好的团队文化,从而实现更高效的软件开发过程。在今后的工作中,GitLab将继续发挥其重要的作用,助力企业的数字化转型与技术进步。
在这里插入图片描述

  • 12
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion Long

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值