版本控制gitlab

本文详细介绍了GitLab的安装、配置和管理过程,包括如何部署GitLab,设置外部URL,管理用户权限以及项目。同时,对比了GitLab与Subversion的区别,阐述了Subversion作为版本控制系统的基本功能和特性。文章还提及了上线、发布、发版的一般流程,强调了团队协作和版本控制的重要性。
摘要由CSDN通过智能技术生成

介绍

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

它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

与GitHub的主要区别是:GitHub提供公共仓库和私有仓库,但如果需要使用私有仓库,是需要收费的。而Gitlab可以免费让用户设置仓库的权限,从而可以让指定的人看到指定的内容,保证了仓库的私有性。

常用版本控制工具:

  • gitlab
  • subversion

gitlab 部署

#安装git
[root@localhost ~]# yum -y install epel-release git

#安装依赖包
[root@localhost ~]# yum -y install curl openssh-server openssh-clients postfix cronie policycoreutils-python-utils

#启动postfix
[root@localhost ~]# systemctl enable --now postfix
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.

#下载gitlab的rpm包
#下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/gitlab-ce-14.3.2-ce.0.el8.x86_64.rpm
[root@localhost ~]# rpm -ivh gitlab-ce-14.3.2-ce.0.el8.x86_64.rpm 
警告:gitlab-ce-14.3.2-ce.0.el8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID f27eab47: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:gitlab-ce-14.3.2-ce.0.el8        ################################# [100%]
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  
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 reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=14-3


#修改配置文件
[root@localhost ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.8.129'

[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart

#查看当前gitlab版本
[root@localhost ~]# head -1 /opt/gitlab/version-manifest.txt
gitlab-ce 14.3.2

#gilab密码存放位置
[root@localhost ~]# vim /etc/gitlab/initial_root_password

#破解密码
[root@localhost ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]
 GitLab:       14.3.2 (92acfb1b8a9) FOSS
 GitLab Shell: 13.21.1
 PostgreSQL:   12.7
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.3.2)
irb(main):001:0> user = User.where(id:1).first
=> #<User id:1 @root>	# id为1的是超级管理员
irb(main):005:0> user.password = '123456789'
=> "123456789"	# 密码至少8个字符
irb(main):006:0> user.password_confirmation = '123456789'
=> "123456789"
irb(main):007:0> user.save!	#保存修改,无问题返回true
Enqueued ActionMailer::MailDeliveryJob (Job ID: cf6bafdc-c6ef-4f1b-be68-35881b3f4e9b) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007f354bd4daf0 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true

在这里插入图片描述
在这里插入图片描述

gitlab管理

在这里插入图片描述
创建用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用student用户登录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置权限
在这里插入图片描述
在这里插入图片描述
管理项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#克隆项目
[root@localhost opt]# git clone http://192.168.8.129/root/myproject.git
正克隆到 'myproject'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 206 字节 | 206.00 KiB/s, 完成.
[root@localhost opt]# ls
gitlab  myproject

subversion

Subversion简称SVN,是当前占据主导的版本控制系统,它取代早前流行的CVS(Concurrent Version System)。SVN作为新一代的版本控制工具,不仅可以管理程序源代码,也可以应用于其他协作管理数据的工作:例如使用Subversion来合作写乐谱、共同作图。

在终端命令行中运行“svn --version”可查看当前安装的svn的版本号;通过“svn --help/-h/help/?”可以查看svn帮助,后可跟具体subcommand查询其帮助。

Subversion 的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。
某些版本控制系统本身也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。对你来说,这些文件这可能是源程序—而对别人,则可能是一个货物清单或者是数字电影。

功能

  • 包含绝大部分CVS的功能
    CVS是最基本的版本控制系统。Subversion包含了CVS的大部分功能,并且针对有些功能还稍加改进。
  • 目录的版本化
    Subversion将目录名以版本号的形式体现。
  • 基于版本的复制,删除和重命名
    无论复制、删除还是重命名,都会被打上版本号,尽管这听上去有些奇怪。
  • 自由的版本化元数据操作
    Subversion允许任何元数据附加在文件或目录中。这些属性是键/值对,并且被版本化。Subversion也提供对修订版附加任何键/值属性的方法,这些属性不会被版本化,因为他们会自动将元数据附加到版本空间中,但他们可以随时被更改。
  • 混合追踪
    Subversion 1.5开始加入了混合追踪功能。
  • 文件锁
    支持文件锁定,当多个用户试图编辑同一个文件时会收到警告。
  • Apache网络服务的支持,基于WebDAV/DeltaV协议
    使用基于HTTP的WebDAV/DeltaV协议进行网络通信,而Apache网络服务器提供网络存储的站点服务。
  • 可执行的标签
    当一个文件是可执行的时候,Subversion会提示,并且当这个可执行的文件被放在版本控制中时,Subversion会防止该程序检查其他目录。
  • 独立进程模式
    Subversion可以运行在独立模式下
  • 一个只读的存储镜像
    Subversion提供一个工具,SVNsync, 用于同步主服务器上的 文件到一个子存储服务器上,并且标为只读的属性

上线、发布、发版流程

  • 运营人员计划一个时间发布
  • 开发人员开发
  • 测试人员测试
    有问题:打回去让开发修复bug
  • 运维人员:
    评估
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值