版本控制系统分类:
本地版本控制系统
集中化的版本控制系统
分布式版本控制系统
Git特点
速度
简单的设计
完全分布式
允许成千上万个并行开发的分支
及其适合管理大项目,有着令人难以置信的非线性分支管理系统
git使用的经典参考网址:官方文档:https://git-scm.com/book/zh/v2
简易文档:https://www.liaoxuefeng.com/wiki/896043488029600
Git的状态:
已提交、已修改和已暂存
已修改表示修改了文件,但是还没有保存到数据库中。
已暂存表示对一个已修改的文件的当前版本做了标记,使之包含在下一次提交的快照中。
已提交表示数据已经安全的保存在本地数据库中。
因此git项目有三个阶段:工作区、暂存区和Git目录
Git工具的使用
Git工具是一种版本控制系统。
安装git
获取git仓库:
方式一:本地目录转换
在此实验中使用此方式
1.初始化版本库
创建目录
将该目录初始化为版本库
此时该目录就被初始化为一个仓库:
添加用户信息:
注意git命令要放在仓库的目录下执行,添加用户名和用户邮件
查看信息是否添加成功:
查看状态:
add命令添加到暂存区:(A表示文件在暂存区)
提交到仓库中:
查看日志信息:
修改文件信息,状态发生改变(M 表示进行了修改):(下面的加号后面的信息,表示新添加的信息)
创建忽略文件:
以下的设置代表所有的隐藏文件会被忽略:
此时查看状态,发现隐藏文件都被忽略:
跳过使用暂存区域,直接提交:
移除文件:
撤销删除的文件,恢复文件:
版本回退:
添加id,退回到之前的版本:
将仓库信息上传到github上:
在github新建一个仓库:
public免费,private收费
有两种上传方式:1https方式 2ssh方式
在此利用ssh方式上传,因为https方式需要每次进行认证
首先生成密钥
复制公钥信息:
在github设置中,选择SSH and GPG keys,然后添加公钥信息:
此时就可以在server端关联远程连接到github仓库
然后推送(第一次需要加-u):
此时可以在github的仓库中查看到上传的信息:
本地也可以从服务端克隆下来远程仓库的信息:
私有仓库gitlab代码仓库的搭建:
下载gitlab
官网:https://about.gitlab.com/install/
国内镜像网站:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
软件安装(官方推荐至少4G内存,2G内存的话会非常的慢)
常用命令:
gitlab-ctl start #启动所有gitlab组件
gitlab-ctl stop #停止所有gitlab组件
gitlab-ctl restart #重启所有gitlab组件
gitlab-ctl status #查看服务状态
gitlab-ctl reconfigure #重载服务
gitlab-ctl tail #查看日志
企业7,下载最新版本:
软件安装:
修改访问地址:
刷新:
端口开启成功:
访问地址,初始化密码:
用户名为root,利用初始化密码登录:
中文设置:
新建项目:
上传server端公钥:
此时可以远程克隆:
此时将gitlab仓库中的信息拉取到本地仓库:
也可以进行上传:
此时在远程仓库可以查看到:
gitlab存在缺点,即太占内存:
jenkins持续集成:
软件下载:
国内镜像网站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
安装jenkins
rpm -ivh jdk-8u171-linux-x64.rpm
rpm -ivh jenkins-2.225-1.1.noarch.rpm
启动jenkins
systemctl start jenkins
安装:(server2内存不多,所以安装到server3上)
分开装,先装jdk,再装jenkins:
启动:
更新插件源(使下载变快):
此时并没有真正更新,还需要修改default.json文件:
修改文件中的地址:
重启,使编辑生效:
此时可以访问:
使用初始密码登录:
在此我们使用freestyle,企业中一般使用流水线:
无法连接:
原因server3没有安装git命令
将server2的私钥上传:
添加完成后,选择root:
触发器选择轮询,5个*表示每分钟查看一下gitlab仓库状态:
在此简单设置一个执行命令:
然后点击保存:
一分钟后,将gitlab仓库中的信息拉取到server3的以下目录:
实现实时触发,当gitlab发生变更后,jenkins实时变更:
在管理中,选择插件管理:
选择后点击直接安装:
安装完成后在构建触发器中选择第四项:
获取token值,在server2中要用:
点击保存:
在server2上需要设置为允许外发请求:
输入地址和刚才的token值:
自行选择可以选择触发的条件:
添加成功后如下所示:
此时点击测试:
触发条件选择刚才勾选的:
此时触发成功,在server3中可以查看到:
以上的这个方式,保证当gitlab发生变更后,立马实时通知jenkins。
docker插件应用:
在次我选择了第四个插件,此插件可以利用dockerfile构建,也可以推送构建的镜像到仓库中去,然后点击安装:
启动server1上的harbor仓库:
在server3上安装docker-ce,并启动:(docker主机设置为本地,比较方便)
可以直接将server1中的仓库文件拷贝到server3:
此时将docker主机设置为本地,将仓库设置为server1的harbor仓库:
添加凭据:
点击保存,构建完成后会上传:
在harbor仓库中可以找到:
配置构建后操作,可以设置发邮件,表示成功