GitLab+Jenkins结合构建持续集成(CI)环境

Posted mercury-linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitLab+Jenkins结合构建持续集成(CI)环境相关的知识,希望对你有一定的参考价值。

持续集成概述

  • 持续集成概述:持续集成(continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的代码部署集成到主干,并进行自动化测试。

  • 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。

  • 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化。

版本控制系统概述

什么是版本控制系统

版本控制系统(Version Control System):

是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

版本控制解决了那些问题:

快速回滚到指定的版本,只保留变化的内容

版本控制系统SVN于Git的区别

  1. git是分布式的,SVN是集中式的

    开发人员可以建立自己的分支,并在自己的分支上进行操作,减少了冲突

  2. git可以在没有网络的情况下使用

    从远程库clone一个到本地库,没有网络的情况下,可以将修改提交到本地库,等有网的时候在传上去。

  3. git和SVN的版本控制

    是通过.git和.svn文件,.git只是在本地的版本库的目录下存在,而.svn存在于每一个文件夹,当我们不需要版本控制的时候,要删除.svn很费时。

  4. 版本号问题

    svn有明确的版本号,git对于每一个版本,都通过SHA1算法生成一个唯一标示的码,方便追溯到之前的版本。

git使用

git简介

官网地址:https://git-scm.com/

菜鸟教程:https://www.runoob.com/git/git-workflow.html

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

git基本概念

我们先来理解Git工作区、暂存区和版本库概念

  • 工作区:就是你在电脑里能看到的目录。

  • 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

技术图片

安装和配置Git

#git安装
yum install git -y
git --version

#配置个人的用户名称和电子邮件地址:
git config --global user.name ""
git config --global user.email "1354586675@qq.com"
git config --global color.ui   "true"

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

查看配置信息

git config --list
user.name=吉祥
user.email=1354586675@qq.com
color.ui=true

#或
cat /root/.gitconfig
[user]
    name = 吉祥
    email = 1354586675@qq.com
[color]
    ui = true

创建版本库

#使用当前目录作为Git仓库,该命令执行完后会在当前目录生成一个 .git 目录。,
mkdir /opt/class
cd /opt/class
git init

#或者指定目录作为git仓库
git init  /opt/class/
Initialized empty Git repository in /opt/class/.git/

git仓库添加文件

技术图片

#添加文件到缓存区
git add .
git commit -m add three file
  • 实验
#创建5个文件并写写入各自的文件数字
for n in 1 2 3 4 5;do echo $n >$n.txt ;done

#查看文件状态,未提交缓存区
git status

#提交完查看文件状态
git add .
git status

#提交到git仓库
git comiit -m add three file

git修改文件名称并提交

#目录和缓存区之间的变化
git mv 5.txt 6.txt
git status
git commit -m change file name
git status

git的文件对比

#缓存区与git仓库之间的变化
vim 6.txt
5
6

git diff 6.txt  #本地目录和缓冲区文件对比
git diff --cached 6.txt  #缓冲区文件和仓库文件对比
git add .

git diff --cached 6.txt
git diff 6.txt
git commit -m add ontline 6.txt
git status

实现回退功能

#查看当前的历史版本
git log --oneline   
git reset --hard 942bdf3

#查看所有的历史版本
git reflog --oneline
git reset --hard 942bdf3

撤销修改的文件

#提交到缓冲的区文件撤回
git reset HEAD file3(文件名)
git checkout -- file3(文件名)

#未add到缓冲区的文件撤回
git checkout -- file3(文件名)

git管理分支

#增加一个新分支
git branch dev01
#切换分支
git checkout  dev01

#在开发分支上合并主分支
git merge master  -m 注释

#切回主分支
git checkout  master
#在主分支合并开发
git merge dev01  -m 注释

git标签管理

#给当前版本打标签
git tag v1.2 

#删除标签
git  tag  -d  v1.2

#给任意版本打标签
git tag  -a v1.0  -m  优化了1111  修复bug  a119962 

git远程仓库gitee

码云地址:https://gitee.com/ 一个免费的静态网页托管服务

  • 创建私有仓库技术图片
  • 创建完成:技术图片

https协议方式上传

git init
git add .
git commit -m "first commit"
git remote add origin https://gitee.com/weijixiang_god/class.git
git push -u origin master   #上传到master分支
Username for https://gitee.com: weijixiang_god  #代码仓库名称
Password for https://weijixiang_god@gitee.com:  #登录密码
  • 上传结果:技术图片

ssh协议方式上传

  • 主机创建公钥,复制到码云
ssh-keygen  #一路回车
cat /root/.ssh/id_rsa.pub
#秘钥内容忽略,添加到码云

技术图片

  • 免密钥推送
#创建一个新文件并上传到git仓库
echo "7" > 7.txt && git add . && git commit -m "create 7.txt" 

git remote remove origin    #删除之前上传方式问https的用户信息
git remote add origin git@gitee.com:weijixiang_god/class.git   #添加git方式仓库信息
git push -u origin master

上传标签

git tag 1.0  #给当前仓库打标签
git push origin master --tags  #推送标签

 

以上是关于GitLab+Jenkins结合构建持续集成(CI)环境的主要内容,如果未能解决你的问题,请参考以下文章

Linux云计算 --中国三大电商大厂都在使用的《 GitLab与Jenkins结合构建持续集成(CI)环境》是如何排列

Gitlab与Jenkins结合构成持续集成(CI)环境

gitlab与jenkins结合构建持续集成

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins

使用 GitLab + Jenkins 实现持续集成(CI)环境