持续集成与持续交付(1)

目录

    • 1.git简介
    • 2.git安装使用
    • 3.gitlab代码仓库
    • 4.jenkins持续集成
    • enkins简介
    • 安装
      • 使用

1.git简介

官网学习地址
http://git-scm.com/book/zh/v2

Git特点:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。

Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。

  • 已修改表示修改了文件,但还没保存到数据库中。
  • 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。

2.git安装使用

安装

[root@server1 ~]# yum install git -y
[root@server1 ~]# mkdir demo
[root@server1 ~]# cd demo/
[root@server1 demo]# ls
[root@server1 demo]# git init

在这里插入图片描述

[root@server1 demo]# touch README.txt

[root@server1 demo]# git add README.txt  #跟踪新文件
[root@server1 demo]# git status
[root@server1 demo]# git status -s
A  README.txt

添加用户
[root@server1 demo]# git config --global user.name "bw"
[root@server1 demo]# git config --global user.email "[email protected]"
[root@server1 demo]# git commit -m "add file" ##提交更新
[root@server1 demo]# git log #日志

持续集成与持续交付(1)_第1张图片

[root@server1 demo]# vim README.txt 
[root@server1 demo]# cat README.txt 
westos
[root@server1 demo]# git status -s
 M README.txt
[root@server1 demo]# git add README.txt 
[root@server1 demo]# git status -s
M  README.txt
[root@server1 demo]# vim README.txt 
[root@server1 demo]# cat README.txt 
westos
westos
[root@server1 demo]# git status -s
MM README.txt
[root@server1 demo]# git add README.txt 
[root@server1 demo]# git status -s
M  README.txt
[root@server1 demo]# git commit -m "update file"
[root@server1 demo]# git log
[root@server1 demo]# git status -s

持续集成与持续交付(1)_第2张图片
隐藏文件

[root@server1 demo]# vim .gitignore
.*
[root@server1 demo]# git status -s

在这里插入图片描述

[root@server1 demo]# touch test.txt
[root@server1 demo]# git add test.txt 
[root@server1 demo]# git commit -m "add test.txt"
[root@server1 demo]# git reflog

持续集成与持续交付(1)_第3张图片
删除文件

[root@server1 demo]# rm -f test.txt 
[root@server1 demo]# git reflog
[root@server1 demo]# git status -s

持续集成与持续交付(1)_第4张图片
撤消对文件的修改

[root@server1 demo]# git checkout -- test.txt

在这里插入图片描述

[root@server1 demo]# git rm test.txt  
[root@server1 demo]# git status -s
[root@server1 demo]# git commit -m "delete test.txt"
[root@server1 demo]# git status -s
[root@server1 demo]# git reflog

持续集成与持续交付(1)_第5张图片
版本回退

[root@server1 demo]# git reset --hard f58994c
[root@server1 demo]# ls

持续集成与持续交付(1)_第6张图片

[root@server1 demo]# git reset --hard 21a3b50
HEAD is now at 21a3b50 delete test.txt
[root@server1 demo]# ls
README.txt

3.gitlab代码仓库

[root@server1 ~]# yum install -y curl policycoreutils-python openssh-server
[root@server1 ~]# rpm -ivh gitlab-ce-13.2.2-ce.0.el7.x86_64.rpm 
[root@server1 ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://172.25.4.1'
重载服务
[root@server1 ~]# gitlab-ctl  reconfigure

查看状态

[root@server1 ~]# gitlab-ctl status

持续集成与持续交付(1)_第7张图片
访问172.25.4.1

重置密码 用户名为root
持续集成与持续交付(1)_第8张图片

新建项目
持续集成与持续交付(1)_第9张图片

免密

[root@server1 ~]# ssh-keygen
[root@server1 ~]# cat .ssh/id_rsa.pub 

在这里插入图片描述

持续集成与持续交付(1)_第10张图片
持续集成与持续交付(1)_第11张图片
持续集成与持续交付(1)_第12张图片
克隆项目

[root@server1 ~]# rm -rf demo/
[root@server1 ~]# git clone [email protected]:root/demo.git
[root@server1 ~]# ls
demo

推送仓库

[root@server1 ~]# cd demo/
[root@server1 demo]# touch index.html
[root@server1 demo]# echo www.westos.org > index.html
[root@server1 demo]# git add index.html
[root@server1 demo]# git commit -m "add index.html"
[root@server1 demo]# git status -s
[root@server1 demo]# git push -u origin master 

持续集成与持续交付(1)_第13张图片
刷新项目查看
持续集成与持续交付(1)_第14张图片
持续集成与持续交付(1)_第15张图片

4.jenkins持续集成

enkins简介

  • Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
  • Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
  • CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
  • CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。

安装

新开一个虚拟机(内存2g)

[root@server2 ~]# rpm -ivh jdk-8u171-linux-x64.rpm
[root@server2 ~]# rpm -ivh jenkins-2.283-1.1.noarch.rpm
[root@server2 ~]# systemctl start jenkins

访问172.25.4.2:8080

输入密钥
持续集成与持续交付(1)_第16张图片
生成updates文件

[root@server2 ~]# vim /var/lib/jenkins/updates/default.json

修改第一行为baidu,并替换
持续集成与持续交付(1)_第17张图片

:%s/updates.jenkins.io\/download/mirrors.tuna.tsinghua.edu.cn\/jenkins/g

重新加载

[root@server2 updates]# systemctl reload jenkins.service 

刷新页面,继续安装
持续集成与持续交付(1)_第18张图片
持续集成与持续交付(1)_第19张图片
持续集成与持续交付(1)_第20张图片

持续集成与持续交付(1)_第21张图片

使用

安装插件gitlab
持续集成与持续交付(1)_第22张图片

新建一个自由风格项目

持续集成与持续交付(1)_第23张图片

[root@server2 ~]# yum install git -y

添加访问git仓库的私钥
持续集成与持续交付(1)_第24张图片
持续集成与持续交付(1)_第25张图片
给git仓库添加公钥
持续集成与持续交付(1)_第26张图片
选择如下无报错
持续集成与持续交付(1)_第27张图片
构建选择执行shell命令
持续集成与持续交付(1)_第28张图片
gitlab自动触发jenkins(添加gitlab插件)
持续集成与持续交付(1)_第29张图片
持续集成与持续交付(1)_第30张图片

持续集成与持续交付(1)_第31张图片

持续集成与持续交付(1)_第32张图片

持续集成与持续交付(1)_第33张图片
持续集成与持续交付(1)_第34张图片
持续集成与持续交付(1)_第35张图片

持续集成与持续交付(1)_第36张图片

[root@server1 demo]# vim index.html 
[root@server1 demo]# git commit -a -m "v1"
[root@server1 demo]# git status -s
[root@server1 demo]# git push -u origin master

持续集成与持续交付(1)_第37张图片
持续集成与持续交付(1)_第38张图片

你可能感兴趣的:(笔记,git,gitlab,jenkins)