0


Gitlab 仓库搭建(详细版)

前言

公司代码的管理不统一,一部分人用SVN,一部分人用Git,对于习惯了使用Linux或者Mac命令行的人来说,Git的操作更方便和快捷,和小伙伴商量了一下把整个代码管理工具切换成了Git,GitHub如果不是开源项目的话是需要付费使用,所以选择使用GitLab。

一、gitlab 介绍

** Gitlab是一个用于仓库管理系统的开源项目**,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。Gitlab有乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它由Ruby写成。后来,一些部分用Go语言重写,现今并在国内外大中型互联网公司广泛使用。gitlab-ce是它的社区版,gitlab-ee是企业版,是收费的。

二、git和svn 的区别

Git: 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

下图就是分布式版本控制工具管理方式:

Git:是分布式版本控制系统,它没有中央服务器,每个人的电脑就是一个完整的版本库,这样工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

SVN: 是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。

下图就是标准的集中式版本控制工具管理方式:

但是相较于其优点而言,集中式版本控制工具缺点很明显:

服务器单点故障

容错性差

Git 的内容完整性要优于svn:

GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

一个研发队伍的成员正常包括:需求分析、设计、美工、程序员、测试、实施、运维,每个成员在工作中都有产出物, 包括了文档、设计代码、程序代码,这些都需要按项目集中进行管理的。SVN能清楚的按目录进行分类管理, 使项目组的管理处于有序高效的状态,SVN更适用于项目管理, Git更适用于代码管理。

1 集中式vs分布式****

Subversion(svn)属于集中式的版本控制系统

Git属于分布式的版本控制系统

2、 版本库与工作区

SVN的版本库和工作区是分离的

Git 的版本库和工作区如影随形

3. 全局版本号和全球版本号

SVN的全局版本号和CVS的每个文件都独立维护一套版本号相比,是一个非常大的进步。在看似简单的全局版本号的背后,是Subversion提供对于事物处理的支持,每一个事物处理(即一次提交)都具有整个版本库全局唯一的版本号。

Git的版本号则更进一步,版本号是全球唯一的。Git 对于每一次提交,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,得到一个40位的十六进制字符串,Git将此字符串作为版本号

4、****部分检出和全局检出

Subversion可以将整个库检出到工作区,也可以将某个目录检出到工作区。对于要使用一个庞大、臃肿的版本库的用户来说,部分检出是非常方便和实际的。
Git只能全部检出,不支持按照目录进行的部分检出。

5、****更新和提交

在SVN中,因为只有一个中心仓库,所以所谓的远程更新,也就是svn update ,通过此命令来使工作区和版本库保持同步。如果不能连接到服务器上,基本上不可以工作。

对于git来说,别人的改动是存在于远程仓库上的,所以git checkout命令尽管在某些功能上和svn中的update类似(例如取仓库特定版本的内容),但是在远程更新这一点上,还是不同的,不属于git checkout的功能涵盖范围。 Git使用git fetch和git pull来完成远程更新任务,fetch操作只是将远程数据库的object拷贝到本地,然后更新remotes head的refs,git pull 的操作则是在git fetch的基础上对当前分支外加merge操作。可离线工作。

三、Git和svn的优缺点比较

1、SVN优缺点

优点:

1、 管理方便,逻辑明确,符合一般人思维习惯。

2、 易于管理,集中式服务器更能保证安全性。

3、 代码一致性非常高。

4、 适合开发人数不多的项目开发。

缺点:

1、 服务器压力太大,数据库容量暴增。

2、 如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等。

3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

2、Git优缺点

**优点: **

1、适合分布式开发,强调个体。

2、公共服务器压力和数据量都不会太大。

3、速度快、灵活。

4、任意两个开发者之间可以很容易的解决冲突。

5、离线工作。

缺点:

1、学习周期相对而言比较长。

2、不符合常规思维。

3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

四、git、gitlab、GitHub的简单区别

git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面

gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发

github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库

其中:

Gitlab和GitHub的区别

相同点:二者都是基于web的Git仓库,在很大程度上Gitlab是仿照GitHub来做的;
它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布
和合作开发项目的中心化云存储的场所。

不同点:GitHub如果要使用私有仓库,是需要付费的。Gitlab可以在上面创建私人的免费仓库。

Gitlab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourceing让不在权限范围内的人访问不到该资源。从代码私有性方面来看有时公司并不希望员工获取到全部的代码,这个时候Gitlab无疑是更好的选择。但是对于开源项目而言,GitHub依然是代码托管的首选。

五、Gitlab 搭建

1、gitlab 安装

方法一、设置gitlab的yum源(使用清华镜像源安装GitLab)

gitlab-ce是它的社区版,gitlab-ee是企业版,是收费的。

在 /etc/yum.repos.d/ 下新建 gitlab-ce.repo,写入如下内容:
 
cd /etc/yum.repos.d/
vim gitlab-ce.repo
 
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1
 
yum clean all && yum makecache

安装 GitLab

# 直接安装最新版
yum install -y gitlab-ce 

下图表示gitlab安装成功

如果要安装指定的版本,在后面填上版本号即可

yum install -y gitlab-ce-×××

如果安装时出现gpgkey验证错误,只需在安装时明确指明不进行gpgkey验证

yum install gitlab-ce -y --nogpgcheck

方法二、脚本安装gitlab

如果执行脚本出现坏的解释器:脚本文件保存时使用了DOS格式,用DOS2UNIX转为UNIX格式,也可以用vim打开,用:set ff=unix转换。

#!/bin/bash
  #安装依赖
systemctl stop firewalld
setenforce 0
a=`ifconfig ens33 |grep inet |awk 'NR==1{print $2}'`
  yum install curl wget policycoreutils policycoreutils-python openssh-server openssh-clients postfix -y >/dev/null
  systemctl enable sshd
  systemctl start sshd
  sed -i 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
 
  #正式安装gitlab
  curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash > /dev/null
  sed -i "s/baseurl=https:\/\/packages.gitlab.com\/gitlab\/gitlab-ce\/el\/7\/\$basearch/baseurl=https:\/\/mirrors.tuna.tsinghua.edu.cn\/gitlab-ce\/yum\/el\$releasever\//g" /etc/yum.repos.d/gitlab_gitlab-ce.repo
  yum makecache &>/dev/null
  yum install gitlab-ce -y
  #已经安装完成
 
 
  #验证是否安装成功
  right=$(yum list installed | grep gitlab-ce)
  gitlab='gitlab-ce'
    if [[ ${right} =~ "${gitlab}" ]];then
      echo "gitlab-ce已经安装成功啦!"
    else
      echo "gitlab-ce没有安装成功,请重新检查!"
      exit
    fi
sed -i '32s/gitlab.example.com/'$a':9099/' /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure > /dev/null
echo "此时访问本地IP:9099 就可以显示gitlab 的页面了!"

方法三、清华开源软件rpm下载

Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 网站地址

安装依赖
yum install -y curl policycoreutils openssh-server openssh-clients

#启动ssh服务&设置为开机启动
systemctl enable sshd
systemctl start sshd

安装Postfix
Postfix是一个邮件服务器,GitLab发送邮件需要用到
#安装postfix
yum install -y postfix
 
#启动postfix并设置为开机启动
systemctl enable postfix
systemctl start postfix

开放ssh以及http服务(80端口)
#开放ssh、http服务
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
 
 说明允许ssh服务通过成功

说明80端口通过成功

#重载防火墙规则
firewall-cmd --reload

或者

直接关闭防火墙以及开机自关闭

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

*安装gitlab,安装完gitlab需要修改配置文件,并加载*

vim /etc/gitlab/gitlab.rb     进入配置文件

#找到下面一行,修改ip

修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效即可启动Gitlab。注意,启动过程较长,需要耐心等待。

我们查看一下Gitlab的状态,执行命令:

六、gitlab安装目录

以下是gitlab常用的默认安装目录

****gitlab组件日志路径:/var/log/gitlab

gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件

应用代码和组件依赖程序:/opt/gitlab

各个组件存储路径: /var/opt/gitlab/

仓库默认存储路径 /var/opt/gitlab/git-data/repositories

版本文件备份路径:/var/opt/gitlab/backups/

nginx安装路径:/var/opt/gitlab/nginx/

redis安装路径:/var/opt/gitlab/redis****

七、GitLab常用命令汇总

****#查看服务状态
gitlab-ctl status
使用控制台实时查看日志

查看所有的logs; 按 Ctrl-C 退出

gitlab-ctl tail

拉取/var/log/gitlab下子目录的日志

gitlab-ctl tail gitlab-rails

拉取某个指定的日志文件

gitlab-ctl tail nginx/gitlab_error.log
#启动关闭gitlab
gitlab-ctl start
gitlab-ctl stop #停止
gitlab-ctl status #查看状态
gitlab-ctl restart #重启
gitlab-ctl reconfigure #更新配置文件
gitlab-ctl help #帮助
gitlab-rake gitlab:check SANITIZE=true --trace 检查gitlab
#gitlab 默认的日志文件存放在/var/log/gitlab 目录下
gitlab-ctl tail #查看所有日志
#禁止 Gitlab 开机自启动
systemctl disable gitlab-runsvdir.service
#启用 Gitlab 开机自启动
systemctl enable gitlab-runsvdir.service****

八、Gitlab访问测试

1、Gitlab登录

打开浏览器输入gitlab服务器地址,注册用户,如下图

注册用户

例:

完成后想登录http://192.168.111.50:9091 需要账号和密码登录,注册一个后登录报错误,需要管理员账号初始化。(密码最少的是8位数字)

2、配置默认访问密码

 切换到命令运行的目录 cd /opt/gitlab/bin/
  执行如下命令:gitlab-rails console -e production  进行初始化密码

在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
gitlab-rails console -e production
u=User.where(id:1).first
u.password='12345678'
u.password_confirmation='12345678'
u.save!
exit
 
出现true说明设置成功!
此时就可以用root/12345678来登录页面

成功登录root用户

3、想要登录自己创建的用户?

****解决方案 ****

需要用root账号通过下

点击批准

**再次登录,即可登录成功 **

**注: 觉得英文难受的可以在下图设置成中文 **

九、Gitlab 图形化界面操作

1、Gitlab关闭自动注册

在企业生产环境中,我们一般由项目负责人负责创建用户并分配权限,一般禁止员工私自注册用户,以防给项目开发工作带来安全性上的风险。为了避免员工自动注册,我们一般会禁止Gitlab的自动注册功能。在Gitlab的主菜单上,选择Menu——Admin,如下所示:

前提:使用root管理员账号密码登陆GitLab。

之后,选择Settings——Sign-up restrictions,点击右边的Expand,如下所示:

**在弹出的页面中,取消掉Sign-up enabled选项前面的勾,如下所示: **

这样,点击下方的Save后,就可以使得我们的配置生效了。这样在登录的时候,就无法实现自动注册了。

2、Gitlab登录免密认证

Gitlab的登录免密验证,配置完成后,可以使得我们的Gitlab自动执行Git命令而无需登录,对于脚本的编写以及其他项目(如Jenkins)的运用这一步是必须的。

首先,在想要进行验证的设备上执行命令:

ssh-keygen

确认新生成的密钥文件

完成上述配置后,可以生成本设备的公私钥对,执行命令:

可以查看本设备的公钥,如下所示:

我们将该公钥复制下来,之后,我们打开Gitlab,点击右上角的用户图标,在弹出的选择框中选择Edit Profile,然后点击左边的SSH Keys,如下所示:

之后在弹出的页面中,我们将之前复制的公钥复制到上面去,如下所示:

然后点击Add key,即可完成添加,添加完成后的页面如下:

3、Gitlab创建项目

Gitlab上创建项目。由于新项目的创建必须依赖于一个组,因此,我们在创建项目前,先创建组。
进入Gitlab主页面后,点击Overview中的Groups选项,然后点击右边的New group,选择新创建一个组,如下所示:

输入组的名称和描述,组的URL会随着组名称的输入而自动出现,在组的权限处,我们选择Private,并取消掉下方允许用户访问的请求,配置完成后如下所示:

接下来,我们点击最下方的Create Group,就可以完成组的创建了,如下所示:

接下来,我们来创建项目。项目的创建与组的创建过程类似,都是输入项目名称,选择组的名称,项目描述以及权限等,配置好的项目如下所示:

配置完成后,就可以创建项目了。
创建项目后,Gitlab会自动创建一个README.md的文件,我们可以在线对该文件机型编辑,如下所示:

4、使用管理员创建用户

前提:使用root管理员账号密码登陆GitLab

初始密码由管理员设置,

当用户第一次登录时,由用户进行修改密码

5、Gitlab 添加邮箱设置

邮箱是企业进行工作中的通知,交互必不可少的部分,gitlab同样支持邮箱的配置,方便对一些操作有邮件的提醒,以QQ邮箱为例,进行gitlab邮箱的添加。(邮件授权码)

5.1、开启smtp功能

修改gitlab配置
vim /etc/gitlab/gitlab.rb

 #更新配置文件
gitlab-ctl reconfigure
gitlab-ctl restart

5.2、验证

Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
Notify.test_email('[email protected]', 'GitLab email', 'Hellow world').deliver_now
执行 gitlab-rails console进入控制台交互界面, 
然后在控制台提示符后输入下面内容发送一封测试邮件,测试完成后exit()退出。

6、修改登录欢迎页面

看下图操作即可

设置完的效果图:

十、Gitlab命令行操作

第一次使用该项目地址的话,需要创建新版本库,首先从主项目上fork一个自己的项目。
从自己项目上获取clone(克隆)链接地址。在想要存放的目录下执行

git clone http://192.168.111.50:9091/ceshi/git-test.git

查看日志

1、命令行新建分支****

查看当前所在的分支
git branch 查看分支

git branch deve 创建分支,deve为新的分支名,可改

git checkout dave  进入到刚刚创建的分支
切换分支

查看状态(跟源文件有出入的文件)

git status
git push -u origin dave         提交到新分支中

添加分支成功

在切换回main分支

2、上传代码到仓库

首次使用Git的话,需要设置全局的用户名和邮箱设置,如下图所示:

在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.name "root"
git config --global user.email "admin@example.com"

在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。
这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.name "root"
git config --global user.email "[email protected]"

# 查看配置
 git config --list

git init            初始化git
git remote add origin http://192.168.111.50:9091/ceshi/git-test.git    将本地git和服务器上的连接
git add 1.java        添加要提交的本地项目    (.代表所有 可用文件名代替. 上传某个文件)
git commit -m "测试代码"        提交到本地仓库
git push -u origin main     将项目推送到gitlab端
 
 
出现报错:
 fatal: 远程 origin 已经存在 
解决:
 #删除远程配置 git remote rm origin 
#重新添加 git remote add origin http://192.168.58.10:9091/ceshi/git-test.git

这样就可以了,刷新gitlab页面就可以看到上传的项目了

3、Git 命令行常用指令的使用

git status #上次提交后是否对文件再做了修改项目
git add . #添加所有的变动
git checkout -b 文件夹名称 #创建本地分支并切换分支 git checkout -b pr/ffr
git commit -m “描述” #提交修改 git commit -m “修改什么”
git merge origin/develop “本地分支” #合并origin/develop上别人所做的修改到自己的本地分支 git merge origin/develop pr/ffr
git push origin “本地分支” #推送本地分支到远程,并建立联系 git push origin pr/ffr
git rebase -i 编号 #合并多次提交,将前几次的提交合并为一次
git checkout 分支名 #切换分支 git checkout pr/FFR-color git cherckout develop
git pull #更新当前分支的状态
git branch #列出本地分支
git branch -a #列出本地分支与远程分支
git branch -D 分支名 #删除分支(目前仅用于删除本地分支)
git remote -v #可以查看远程仓库信息
git branch 分支名 #仅仅创建 一个新分支,并不会自动切换到新分支中去
git rebase --abort #退出git rebase
git reset 提交编号 #git rebase -i 提交编号,之后出现错误,可以回退到之前未合并时的日志状态
git commit --amend -m “描述” #修改上一次的提交的描述
git stash #暂存上一次的修改,准备切换到其他的分支
git stash pop #还原上一次的修改,将暂存的修改加入到新的分支

3.1、提交与修改操作

命令

说明

git add

添加文件到暂存区

git status

查看仓库当前的状态,显示有变更的文件。

git diff

比较文件的不同,即暂存区和工作区的差异。

git commit

提交暂存区到本地仓库

git reset

回退版本

git rm

删除工作区文件

git mv

移动或重命名工作区文件

十一、项目创建(测试)

1、GitLab权限

1.1、访问权限

访问权限是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目:

Gitlab中的组对项目有三种****访问权限

权限名称

权限类型

权限说明

私有

Private

只有属于该项目成员才有权限查看和操作项目

内部

Internal

具有GitLab账号的人员登陆后都可以克隆项目

公开

Public

任何人都可以克隆

1.2、GitLab分支角色管理

Gitlab用户在组中有五种权限:

角色名称

角色类型

角色说明

匿名用户

Guest

访客【只能创建问题和留言评论】

报告人

Reporter

可以理解为测试员、产品经理等,一般负责提交问题等

开发人员

Developer

负责项目开发

管理者

Master

一般是组长,负责对Master分支进行维护

所有者

Owner

一般是项目经理【拥有所有权限】

不同角色,拥有不同权限,下面列出Gitlab各角色权限 :

1.3、工程权限

**注意:关于保护分支的设置,可以进入Settings->Protected branches进行管理 **

1.4、组权限

2、设置用户权限

前提:使用root管理员账号密码登陆GitLab

选择项目可以进行权限分配

先设置全局每个机器都必须自报家门:你的名字和Email地址。

git clone http://192.168.111.50:9091/weilai/git-test.git   
 首先从主项目上fork一个自己的项目。
从自己项目上获取clone(克隆)链接地址。
在想要存放的目录下执行
 
以liy用户登录

由于main 是受保护的分支,开发者没有权限将代码上传到main 分支(主干分支)中

Main 分支受保护中(主干分支)

**所以我们切换分支,切换到deve分支中 **

开发者用户liy 编写代码,将代码上传至仓库,将代码上传至分支deve

** 刷新查看仓库,查看分支有我们开发者写的代码**

**使用管理员root 用户创建新的用户yong **

创建用户后,会发送邮箱,设置密码

设置密码成功

Yong 用户登录成功

切换回root用户

邀请用户yong 进入项目 且为匿名用户 guest 只能进行访问以及评论

定义全局用户yong

用户yong 无法克隆项目 用户yong 为匿名用户(客人),所以没有权限下载项目

可以进行分支合并,主要就是开发者编写完代码后,与主干分支进行合并,组成项目

** 分支已合并 **

3、数据流向图

本文主要描述了gitlab 部分的一些操作

十二、Gitlab 数据备份

1、Gitlab 创建备份

1.1、手动备份

创建备份文件
使用一条命令即可创建完整的Gitlab备份。
gitlab-rake gitlab:backup:create   
使用命令会在/var/opt/gitlab/backups目录下创建一个压缩包,这个压缩包就是Gitlab整个的完整部分。

生成完后,/var/opt/gitlab/backups目录
创建一个名称类似为1655990519_2022_06_23_15.0.2_gitlab_backup.tar的压缩包

其中

/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf  nginx配置文件
/etc/postfix/main.cfpostfix  邮件配置备份

2、更改Gitlab备份目录****

也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
修改为你想存放备份的目录即可
 
gitlab_rails['backup_path'] = "/home/gitlab-backup"
 
 
#指定备份后数据存放的路径、权限、时间配置
gitlab_rails['manage_backup_path'] = true              开启备份功能
gitlab_rails['backup_path'] = "/home/gitlab-backup"        指定备份的路径
gitlab_rails['backup_archive_permissions'] = 0644        备份文件的权限
gitlab_rails['backup_keep_time'] = 7776000             备份保留时间

修改完成之后使用下面命令重载配置文件即可.
 
gitlab-ctl reconfigure

创建备份目录并授权
chown -R git:git gitlab-backup

使用命令创建完整的Gitlab备份。

这个压缩包就是gitlab 的整个完整部分

3、Gitlab自动备份****

定时自动备份

实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务

3.1、方法一、输入: crontab -e 然后添加相应的任务

#输入命令crontab -e
crontab -e  
#输入相应的任务
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1  
注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出
 
#查看周期性计划任务
crontab -l 

3.2、脚本执行gitlab 备份

#!/bin/bash
a="/home/gitlab-backup"
back="/home/git_back"
date="$(date +%Y-%m-%d)"
logfile=$back/$date.log
gitlab-rake gitlab:backup:create > /dev/null
b=`ls $a |wc -l`
if [ $b -eq 0 ];then
echo "$date.tar 备份失败" >> $logfile
elif [ $b -gt 0 ];then
echo " $date.tar 备份成功" >> $logfile
fi
mv  $a/*   $back/$date.tar

将脚本加入周期性计划执行

十三、Gitlab-CI/CD

扩展

Gitlab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:

Continuous Integration (CI) 持续集成

Continuous Delivery (CD) 持续交付

Continuous Deployment (CD) 持续部署

CICD是什么?

持续集成(Continuous Integration)、持续交付(Continuous Delivery) 、持续部署(Continuous Deployment) 的新方法,关于持续集成、持续交付、持续部署,总结如下:

1、持续集成的重点是将各个开发人员的工作集合到一个代码仓库中。通常,每天都要进行几次,主要目的是尽早发现集成错误,使团队更加紧密结合,更好地协作。
2、持续交付的目的是最小化部署或释放过程中固有的摩擦。它的实现通常能够将构建部署的每个步骤自动化,以便任何时刻能够安全地完成代码发布(理想情况下)。
3、持续部署是一种更高程度的自动化,无论何时对代码进行重大更改,都会自动进行构建/部署。

持续集成的好处是什么?

持续集成可以使问题尽早暴露,从而也降低了解决问题的难度,持续集成无法消除bug,但却能大大降低修复的难度和时间。

持续交付的好处是什么?

持续交付的好处在于快速获取用户反馈;适应市场变化和商业策略的变化。开发团队保证每次提交的修改都是可上线的修改,那么决定何时上线,上线哪部分功能则完全由产品业务团队决定。

虽然持续交付有显著的优点,但也有不成立的时候,比如对于嵌入式系统的开发,往往需要软硬件的配合。

持续部署的好处是什么?

持续部署的目标是通过减少批量工作的大小,并加快团队工作的节奏,帮助开发团队在其开发流程中消除浪费。这使团队能够一直处于一种可持续的平稳流状态, 让团队更容易去创新、试验,并达到可持续的生产率。

十四、总结

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

可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

标签: github

本文转载自: https://blog.csdn.net/WuDan_1112/article/details/125693496
版权归原作者 醉凡尘¢ World1y 所有, 如有侵权,请联系我们删除。

“Gitlab 仓库搭建(详细版)”的评论:

还没有评论