版本控制gitlab_它非常易于浏览提交过的版本并提供一个文件历史库,它提供一个代码片段功能可以轻-程序员宅基地

技术标签: python  git  运维  

介绍

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
  • 运维人员:
    评估
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/NeaWalke/article/details/120706532

智能推荐

js如何判断数据类型null_js判断null类型-程序员宅基地

文章浏览阅读2.8k次。null类型是一个只有一个值得数据类型,这个值为nullnull表示一个空对象指针所以我们在用typeof来检测null的数据类型时返回值为Objectvar a = null;console.log(typeof a); //Object如果在定义一个 变量时,是用于将来保存对象的,那么我们最好将这个变量的值赋值为null.那么问题来了,js如何准确判断数据类型null呢?o..._js判断null类型

AVFoundation(四)滤镜视频录制流程_avfoundation拍摄视频-程序员宅基地

文章浏览阅读530次。https://www.jianshu.com/p/4701d006b514核心思路1. GPUImageVideoCamera 采集视频: CMSampleBufferRef 采集音频:CMSampleBufferRef2. 渲染滤镜:filter3. 输出: 显示 GPUI..._avfoundation拍摄视频

线性代数笔记12:二次型与函数极值_二次型极大值点-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏27次。这一节我们将看见,如何将数值函数用矩阵表示,并使用正定矩阵来指示函数的极值。二次型定义:对nnn维实向量xxx及nnn阶实对称矩阵AAA,称以下数值函数为一个实二次型(quadratic form),为一个二次齐次多项式。f(x)=xTAx=∑i=1n∑j=1naijxixjf(x)=xTAx=∑i=1n∑j=1naijxixjf(x) = x^TAx = \sum\limi..._二次型极大值点

OpenWrt软路由安装可道云_openwrt 可道云-程序员宅基地

文章浏览阅读2.3w次,点赞2次,收藏15次。昨天买了个新3刷了OPenWrt固件,使用了一周体验了下真香。什么是软路由?答:传统路由器只能进行简单的上网设置内存小不支持定制,但是软路由有大内存可以在里面安装各种各样的软件来进行自定义操作,不仅仅可以拥有传统路由器的上网功能也可以拥有,类似于在路由器里面装一个虚拟机比如Centos或者安装一个NAS以及各种黑科技的操作,所以我为啥不花一个传统路由器的钱来购买一个很舒服的软路由呢?因..._openwrt 可道云

Wireshark嗅探和协议分析_wireshark嗅探分析-程序员宅基地

文章浏览阅读5k次,点赞2次,收藏35次。一、实验目的1、初步掌握Wireshark的使用方法,熟悉其基本设置,尤其是Capture Filter和Display Filter 的使用。2、通过对Wireshark抓包实例进行分析,实现捕捉DHCP、ARP、FTP、HTTP等协议的数据包;理解TCP/IP协议中多种协议的数据结构、会话连接建立和终止的过程;了解FTP、HTTP等协议明文传输特性,增强安全意识。二、实验原理2..._wireshark嗅探分析

Testin云测试平台_pad云测试平台-程序员宅基地

文章浏览阅读7.6k次,点赞3次,收藏23次。测试平台Testin云测试平台是一个基于真实终端设备环境,基于自动化测试技术的7x24云端服务.Testin在云端部署了千余款测试终端,并开放这些智能终端给全球移动开发者进行测试,开发者只需在Testin平台提交自己的App应用,选择需要测试的网络、机型,便可进行在线的自动化测试,无须人工干预,自动输出含错误、报警等测试日志、UI截图、内存/CPU/启动时间等在内的标准测试报告。三大特性1..._pad云测试平台

随便推点

dmp标签_用户标签/用户分群在DMP(数据管理平台)中的应用-程序员宅基地

文章浏览阅读577次。本文主要是关于DMP数据管理平台的认知和浅析,enjoy~一. DMP系统的定义和产品功能DMP即 data management system,数据管理平台,单从名称上来看,这个定义还是非常宽泛的,所以国内很多企业或者个人会将dmp的核心功能理解错。结合我个人的经验和专业的书籍,DMP其实是一个全面的数据收集,加工,整合的平台,吸收各种数据源的数据,以用户为基本单位,清洗,整理形成结构化的数据表..._dmp的ab标签

RabbitMQ 五种基本模式demo(Java版本)_java rabbitmq demo-程序员宅基地

文章浏览阅读609次。RabbitMQ 五种基本模式demo(Java版本)代码非本人所写,只是将代码稍微做了些改动,在自己的环境中运行起来了,侵删五种模式都需要引用的文件ConnectionUtils.java创建并设置factory的基本属性,并返回新创建的connectionpackage test.rabbitmq.rabbitmq.mq5s;import com.rabbitmq.client.*;import java.io.IOException;import java.util.concur_java rabbitmq demo

霸屏浏览器-程序员宅基地

文章浏览阅读1.3k次。源代码在后文,大家一起学习。霸屏浏览器的作用,就是让客户机仅提供Web访问功能,屏蔽其它所有功能,即不允许客户机退出浏览器界面,或者是使用客户机的其它功能,也不允许关机、重启命令。常常用于触摸屏浏览器、自助机浏览器。注意:部分操作系统因为优化和修改,导致该软件需要用管理员权限运行:安装后右击桌面的图标-&gt;点属性-&gt;点兼容性-&gt;勾选以管理员身份运行此程序。软件信息软件授权:免费软件软件类....................._霸屏浏览器

java类型转换工具类Convert_convertbytebuffer-程序员宅基地

文章浏览阅读8.8k次。import java.math.BigDecimal;import java.math.BigInteger;import java.nio.ByteBuffer;import java.nio.charset.Charset;import java.text.NumberFormat;import java.util.Set;import com.ruoyi.common.util..._convertbytebuffer

javascript通用工具_javascript 通用 工具-程序员宅基地

文章浏览阅读361次。$(function() { /** * 自动生成分页 * * @data 为分页实体 * @suffix 分页标签后缀 * @pageTargetId 分页打印的目标ID * @statisticsTargetId 统计数据的目标ID * */ function printPage(data, suffix, pageTargetId, statisti_javascript 通用 工具

6D位姿估计的理解及BOP数据集参数说明_位姿估计数据集-程序员宅基地

文章浏览阅读6.1k次,点赞5次,收藏49次。6D姿态估计的理解及BOP数据集参数说明一、6D姿态姿态估计在百度上搜会出现“姿态估计问题就是确定某一三维目标物体的方位指向问题”的解释,但是具体来讲确定某一三维目标物体的方位指向问题到底是什么意思呢?首先,6D表示6个自由度,3个自由度的位移(Translation)和3个自由度的空间旋转(Rotation)..._位姿估计数据集

推荐文章

热门文章

相关标签