文章目录

  • 1. 版本控制与gitlab介绍
    • 1.1 版本控制
    • 1.2 gitlab介绍
  • 2. gitlab安装
  • 3. gitlab配置与管理
    • 3.1 gitlab_命令行配置相关命令
    • 3.2 gitlab_GUI界面常用管理操作
      • 登陆
      • 项目管理(通常只是创建新项目)
      • 创建成员组(针对某个项目创建一个成员组)
      • 用户管理(此用户乃gitlab用户而非系统用户)

1. 版本控制与gitlab介绍

1.1 版本控制

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

  • 版本控制的功能
    版本控制最主要的功能就是追踪文件的变更。文件变更的时间,操作者,变更内容都会被记录下来。每一次文件的改变,文件的版本号都将增加。

版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。

具体来说,在每一项开发任务中,都需要首先设定开发基线,确定各个配置项的开发初始版本,在开发过程中,开发人员基于开发基线的版本,开发出所需的目标版本。
当发生需求变更时,通过对变更的评估,确定变更的影响范围,对被影响的配置项的版本进行修改,根据变更的性质使配置项的版本树继续延伸或产生新的分支,形成新的目标版本,而对于不受变更影响的配置项则不应发产生变动。

同时,版本控制能够将变更所产生的对版本的影响进行记录和跟踪。必要时还可以回退到以前的版本。例如当开发需求或需求变更被取消时,就需要有能力将版本回退到开发基线版本。在曾经出现过的季度升级包拆包和重新组包的过程中,其实就是将部分配置项的版本回退到开发基线,将对应不同需求的不同分支重新组合归并,形成新的升级包版本。

  • 常用的版本控制工具

    • gitlab
    • svn

1.2 gitlab介绍

GitLab官网文档:https://docs.gitlab.com/ee/

GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

GitLab可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。

GitLab可以管理团队对仓库的访问,它可以很轻松浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

  • git、gitlab、GitHub的简单区别

    • git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面
    • gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发
    • github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库
  • git和svn区别

    • git 是分布式的,svn 是中心式的。
    • git 分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看 log。
    • GIT 分支和 SVN 的分支不同:分支在 SVN 中实际上是版本库中的一份 copy,而 git 一个仓库是一个快照,所以 git 切换、合并分支等操作更快速。
  • gitlab的优势

    • 开源免费,社区免费版本适合中小型公司;
    • 差异化的版本管理,离线同步以及强大分支管理功能;
    • 便捷的GUI操作界面以及强大账户权限管理功能;
    • 集成度很高,能够集成绝大多数的开发工具;
    • 支持内置HA,保证在高并发下仍旧实现高可用性。
  • GitLab由主要由以下服务构成,他们共同承担了Gitlab的运作需要

    • nginx: 静态web服务器
    • gitlab-shell: 用于处理Git命令和修改authorized keys列表
    • gitlab-workhorse: 轻量级的反向代理服务器
    • logrotate:日志文件管理工具
    • postgresql:数据库
    • redis:缓存数据库
    • sidekiq:用于在后台执行队列任务(异步执行)
    • unicorn:HTTP服务,GitLab Rails应用是托管在这个服务器上面的。
  • gitlab的工作流程:

  1. 创建并克隆项目
  2. 创建项目某Feature分支
  3. 编写代码并提交至该分支
  4. 推送该项目分支至远程Gitlab服务器
    5. 进行代码检查并提交Master主分支合并申请
  5. 项目领导审查代码并确认合并申请

2. gitlab安装

  • 环境说明:
[root@node6 ~]# uname -r
4.18.0-257.el8.x86_64
[root@node6 ~]# cat /etc/redhat-release
CentOS Stream release 8
[root@node6 ~]# grep baseurl /etc/yum.repos.d/CentOS-Base.repo
# remarked out baseurl= line instead.
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/centosplus/$basearch/os/
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/PowerTools/$basearch/os/
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
  • 部署过程
//安装git
[root@node6 ~]# yum -y install  git
安装过程略//安装依赖包[root@node6 ~]# yum -y install curl openssh-server openssh-clients postfix cronie
安装过程略....//启动postfix服务并设置开机自启
[root@node6 ~]# systemctl restart postfix.service
[root@node6 ~]# systemctl enable postfix.service
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
[root@node6 ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port       Peer Address:Port   Process
LISTEN    0         128                0.0.0.0:22              0.0.0.0:*
LISTEN    0         100              127.0.0.1:25              0.0.0.0:*
LISTEN    0         128                   [::]:22                 [::]:*
LISTEN    0         100                  [::1]:25                 [::]:*//下载gitlab的rpm包
[root@node6 ~]# cd /usr/src/
[root@node6 src]# ls
debug  kernels
[root@node6 src]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/policycoreutils-python-2.5-34.el7.x86_64.rpm
[root@node6 src]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm
[root@node6 src]# ls
debug                               kernels
gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm policycoreutils-python-2.5-34.el7.x86_64.rpm//安装gitlab
[root@node6 src]# rpm -ivh --nodeps policycoreutils-python-2.5-34.el7.x86_64.rpm
warning: policycoreutils-python-2.5-34.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...1:policycoreutils-python-2.5-34.el7################################# [100%][root@node6 src]# rpm -ivh gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm*.                  *.***                 ********               *****.******             ***************            ********,,,,,,,,,***********,,,,,,,,,,,,,,,,,,,,*********,,,,,,,,,,,.,,,,,,,,,,,*******,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,.,,,,,,,****,,,,,,.,,,***,,,,,*,._______ __  __          __/ ____(_) /_/ /   ____ _/ /_/ / __/ / __/ /   / __ `/ __ \/ /_/ / / /_/ /___/ /_/ / /_/ /\____/_/\__/_____/\__,_/_.___/Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:sudo gitlab-ctl reconfigureFor a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md//修改配置文件

3. gitlab配置与管理

3.1 gitlab_命令行配置相关命令

gitlab-ctl start #启动全部服务
gitlab-ctl restart#重启全部服务
gitlab-ctl stop #停止全部服务
gitlab-ctl restart nginx #重启单个服务,如重启nginx
gitlab-ctl status #查看服务状态
gitlab-ctl reconfigure #使配置文件生效
gitlab-ctl show-config #验证配置文件
gitlab-ctl uninstall #删除gitlab(保留数据)
gitlab-ctl cleanse #删除所有数据,从新开始
gitlab-ctl tail <service name>查看服务的日志
gitlab-ctl tail nginx  #如查看gitlab下nginx日志
gitlab-rails console  #进入控制台[root@node6 ~]# vim /etc/gitla/gitlab.rb
......  //此处为省略内容
external_url 'http://192.168.177.140'     //将此处设为gitlab的服务器ip地址亦或域名
......  //此处为省略内容//重载配置文件并重启gitlab
[root@node6 ~]# gitlab-ctl reconfigure
[root@node6 ~]# gitlab-ctl restart
ok: run: alertmanager: (pid 9410) 0s
ok: run: gitaly: (pid 9425) 1s
ok: run: gitlab-exporter: (pid 9441) 0s
ok: run: gitlab-kas: (pid 9443) 1s
ok: run: gitlab-workhorse: (pid 9453) 0s
ok: run: grafana: (pid 9462) 1s
ok: run: logrotate: (pid 9483) 0s
ok: run: nginx: (pid 9489) 0s
ok: run: node-exporter: (pid 9497) 1s
ok: run: postgres-exporter: (pid 9507) 0s
ok: run: postgresql: (pid 9519) 0s
ok: run: prometheus: (pid 9528) 1s
ok: run: puma: (pid 9544) 0s
ok: run: redis: (pid 9549) 0s
ok: run: redis-exporter: (pid 9631) 1s
ok: run: sidekiq: (pid 9640) 0s//查看当前的gitlab版本
[root@node6 ~]# head -1 /opt/gitlab/version-manifest.txt
gitlab-ce 15.2.2//破解管理员密码
[root@node6 ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------Ruby:         ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]GitLab:       15.2.2 (4ecb014a935) FOSSGitLab Shell: 14.9.0PostgreSQL:   13.6
------------------------------------------------------------[ booted in 27.73s ]
Loading production environment (Rails 6.1.4.7)
irb(main):001:0> user = User.where(id: 1).first     //id为1的是超级管理员
=> #<User id:1 @root>
irb(main):002:0> user.password = '12341234'     //密码必须至少8个字符
=> "12341234"
irb(main):003:0> user.password_confirmation = '12341234'
irb(main):004:0> user.save!     //保存修改,若无问题将返回true
Enqueued ActionMailer::DeliveryJob (Job ID: 7feb0464-15aa-4151-be94-2e657a65494e) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
irb(main):005:0> exit   //退出

3.2 gitlab_GUI界面常用管理操作

登陆

  • 通过上面的账户密码登陆(root:12341234),在浏览器中使用ip访问gitlab服务器进行管理,管理页面如下图所示

项目管理(通常只是创建新项目)




  • 创建成功后 可以具体的项目进行更改或删除操作(一般不会删除)

创建成员组(针对某个项目创建一个成员组)








用户管理(此用户乃gitlab用户而非系统用户)

  • 来了新员工,Tom和Jerry,首先创建用户




  • 可以在用户界面查看所有用户 并配置用户的其他信息
  • 为web项目, my_best_team分别添加Tom 和Jerry用户




    同理 可以为my_best_team 群组 添加Jerry用户

  • Jerry员工离职,将其禁用或删除


  • 为tom用户设置密码 后尝试登陆



gitlab代码管理相关推荐

  1. Git学习二、GitLab官网,安装自己的一个私有Gitlab代码管理库

    Git学习一.TortoiseGit 安装后,文件夹前面不显示相关状态图标解决办法 Git学习二.GitLab官网,安装自己的一个私有Gitlab代码管理库 Git学习三.Git与SVN的差异,Git ...

  2. vue-cli+gitlab代码管理时,vue项目配置文件设置

    2019独角兽企业重金招聘Python工程师标准>>> vue-cli生成的项目,使用gitlab进行代码管理,怎样忽略项目配置文件的提交(避免每次合并分支代码冲突,而且每次修改配置 ...

  3. Gitlab代码管理仓库安装部署

    GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺 ...

  4. 搭建GitLab代码管理仓库

    我只要有代码的项目,都会放到 Github 上,无论公开还是私有项目.一是相当于在云端备份了一份代码,二是可以很方便的分享给别人.但对于私有项目而言存放在别人那总归不好,而且Github 时常会出现无 ...

  5. 基于Docker搭建GitLab代码管理

    关于Git.SVN的优缺点就不再重复了,本篇主要以实际搭建为主. 1.下载镜像文件 在命令行窗口执行如下指令,预计下载完成4分钟. docker pull beginor/gitlab-ce:11.0 ...

  6. Gitlab和Sourcetree结合使用实现代码管理

    Gitlab和Sourcetree结合使用实现代码管理 准备工作 安装git 安装sourcetree 注册gitlab账号 配置SSH Keys SSH是目前较可靠,转为远程登录会话和其他网络服务提 ...

  7. gitlab 只能owner 上传_代码管理-gitlab使用方法建议

    对gitlab的使用主要从两个角度去分析,一个是管理员,一个是开发提交者. 1. 管理员使用 1.1 初始配置 浏览器访问 http://服务器IP:11000 第一次访问会默认以root管理员用户登 ...

  8. gitlab创建分支上传文件_代码管理-gitlab使用方法建议

    对gitlab的使用主要从两个角度去分析,一个是管理员,一个是开发提交者. 1. 管理员使用 1.1 初始配置 浏览器访问 http://服务器IP:11000 第一次访问会默认以root管理员用户登 ...

  9. 代码管理工具—GitLab

    1.GitLab介绍 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务.可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似 ...

最新文章

  1. 大神的xml解析之路
  2. ps怎么对比原图快捷键_用PS快速将一张模糊不清晰的照片变清晰,简单5步就好...
  3. Linux 交换空间优化(swap 优化)(积极使用交换空间占比,可能会使程序运行缓慢!)
  4. 第12章 存储器的保护
  5. 总结面试时没有回答上的内存对齐问题
  6. linux文件未识别,linux的内核文件vmlinuz介绍-深入理解Linux重定向的使用-网卡eth0,未识别的端口的解决方法_169IT.COM...
  7. 【算法】普里姆算法 Prim算法解决修路问题
  8. C++ hash(STL hash)及其函数模板用法详解
  9. python批量下载文件
  10. 江山如画 中国多少绝色
  11. MATLAB:绘制用户给定的01序列图并计算其对应的AMI编码,双相编码和CMI编码
  12. 解决window10播放.avi格式视频黑屏,只有声音没有视频0xc00d5212错误
  13. Win7下的OpenGL安装
  14. 【蓝桥省赛倒计时】B组Java冲刺打卡(三)
  15. keepalived配置虚拟IP
  16. java.lang.IllegalStateException: Cannot get a text value from a numeric cell
  17. (4)小程序 - 家庭收支系统
  18. 我们遇见了一个什么样的张小龙以及他的77条产品原则
  19. mactex学习笔记(1)
  20. docker容器安装配置及创建容器

热门文章

  1. 快如闪电的Android模拟器
  2. c++ fgets() 用法
  3. 读取云服务器文件列表,读取云服务器文件列表
  4. 时频分析:短时傅里叶变换
  5. 555-大数据查重-位图算法
  6. hacker入门专业术语
  7. 计算机视觉工程师装机软件一览
  8. 华硕ASUS Prime Z370M-PLUS II黑苹果OpenCore EFI
  9. WinXP SP2发布以来的所有补丁集下载 0812(V1.3.0)[119M]
  10. 超微主板升级bios_没法用新CPU给老主板更新BIOS?别着急,AMD借你一块CPU