持续集成与持续交付 1(git工具使用、搭建远程私有仓库gitlab)

一、git工具使用

1. git版本控制系统简介

早期为了管理和维护代码,需要有本地版本控制系统,可以简单的理解为目录,刚开始命名为v1,然后复制v1改名为v2,修改,一个版本一个版本记录下来,大量的版本难以管理,而且本地是单点,性能较差。
本地版本控制系统:
在这里插入图片描述
后面演化出了集中化的版本控制系统,它的版本存在server端,可以支持很多的客户端同时的使用代码仓库,但是同样存在server端down了就无法提供服务的问题。
集中化的版本控制系统:
在这里插入图片描述
现在主要是分布式版本控制系统,虽然也有server端,但是server端down了,不影响客户端的使用,客户端可以在本地先提交,等server端正常后,可以把server端和本地进行同步。
分布式版本控制系统:
在这里插入图片描述
为了更好的管理和维护代码,git诞生了。Git是一个开源的分布式版本控制系统,几乎所有开源软件用的都是分布式版本系统,其可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目。详细介绍Git必看秘籍:点击

Git特点:

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

Git 有三种状态:

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

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
在这里插入图片描述
在这里插入图片描述

2. 本地git仓库部署

部署git有两种方式:将本地目录转化为git仓库、克隆已有仓库,如git clone

下面介绍第一种方式:
开启虚拟机lr1,首先安装git
请添加图片描述
创建工作目录demo,初始化版本库**,现在demo目录就是存放版本的版本库**;
.git目录是git跟踪管理版本库的,不要乱动。git命令必须在版本库中使用,出去就没有用了,因为信息都记录在版本库中
请添加图片描述
接着在demo目录中新建代码文件并查看其状态,-s表示简洁输出,代码文件前的??表示该文件不在版本库中。add表示将代码文件从工作区添加到暂存区,此时状态为A,表示新添加到暂存区的。HEAD指针指向当前正在操作的分支
请添加图片描述
commit表示从暂存区添加到master,默认提交整个暂存区。提交时最好添加注释,因为版本变更了什么一目了然,审计时可以快速判断;
提交时会默认创建邮箱和地址,这里也可以自己设置,如果邮箱信息没有创建成功会导致无法提交。
再次查看可以看到代码文件前无状态内容,无内容表示文件无变更
请添加图片描述
假如我们改动了代码文件README.md,查看状态,右边的M表示在工作区改动了文件,add后,查看状态,左边的M表示在暂存区改动了文件,commit提交后,就没有状态了,表示进入了master
请添加图片描述
向代码文件中追加写入内容,查看状态为右侧红色M,即在工作区进行了修改,根据提示信息可以知道在工作区的修改可以通过checkout命令来撤销;
此时查看文件内容可以看到有两行,使用checkout命令撤销工作区的修改后,再次查看文件内容,追加的内容被撤销了
请添加图片描述
编辑代码文件,新追加一行内容,查看状态显示修改在工作区,使用git add将代码文件提交至暂存区;
继续追加一行内容,查看文件状态,显示两个M。左边绿色M表示我们上一步提交至暂存区的修改,右边红色M表示刚才追加内容的修改;
请添加图片描述
再次添加文件至暂存区,查看状态可以看到只有绿色M,因为所有修改都已经被提交到了暂存区
在这里插入图片描述
我们也可以使用commit -a参数,等于add+commit,两步合并一步,先把工作区添加到暂存区,再把暂存区提交到master。注意commit -a提交的必须是已经进入版本库的,需要更新的文件,不能是在工作区新创建的文件
请添加图片描述
即使add添加到暂存区,也是可以撤销的。
如果不想提交这些更改,第一步可以使用reset撤销在暂存区的修改,此时查看文件状态可以看到修改处于工作区,第二步用checkout撤销在工作区的修改,此时查看文件内容
请添加图片描述
查看提交历史
请添加图片描述
用户信息被保存在/.gitconfig这一隐藏文件里
请添加图片描述
回到demo目录下(必须回到代码仓库目录中,因为git命令必须在版本库当中执行),新建隐藏文件和隐藏目录;
在隐藏目录中创建一个子文件,这时查看状态可以看到新建的隐藏文件和隐藏目录(目录中有文件,查看状态才可以看到隐藏目录),??表示并未在版本库中
请添加图片描述
在demo目录下新建并编辑.gitignore文件,像文件中写入.*表示忽略当前目录中的所有隐藏文件,此时查看状态就看不到刚才创建的隐藏文件了。
在这里插入图片描述
查看demo目录下的代码文件内容,再追加一行并提交更改,-a参数相当于之前的add操作,不用分两次执行了。
查看状态无内容,这表示更改已经提交且无变更
请添加图片描述
此时删除代码文件,查看状态可以看到右侧红色D,表示删除的是工作区的内容,可以撤销防止误删;
使用checkout来撤销此次删除,然后查看文件内容,可以看到文件恢复
请添加图片描述
如果使用git rm 命令删除,查看状态显示为左边绿色的D,表示删除了暂存区的内容,想恢复的话可以使用reset;
reset恢复暂存区的删除操作后,再执行checkout来恢复工作区的误删,这时可以看到文件被恢复了
请添加图片描述
如果使用git rm进行删除后,再使用commit提交了删除操作,可以使用回滚的方式恢复文件信息
请添加图片描述
查看提交历史
请添加图片描述
使用git reflog命令查看历史版本信息,然后选择需要回滚到的版本,使用 git reset --hard 版本id进行回滚。
请添加图片描述
请添加图片描述

二、git结合网络仓库github的使用

可以使用github来新建远程仓库或者使用阿里的gitee进行远程仓库的搭建,这里我们以github为例:
首先注册github账户,并新建一个仓库
请添加图片描述
请添加图片描述
为了方便后续操作,这里要做ssh免密,生成本地密钥,并上传公钥到github
请添加图片描述
点击设置
请添加图片描述
把公钥添加到github中
请添加图片描述
请添加图片描述
导入成功
请添加图片描述
进入创建的仓库,选择ssh的连接方式
请添加图片描述
注意接下来的操作需要虚拟机可以上网
请添加图片描述
根据github的提示,首先远程连接github,一定要在仓库目录中添加远程仓库的地址
请添加图片描述
请添加图片描述
推送本地仓库内容至远程共有仓库时要指定分支main
请添加图片描述
上传成功
请添加图片描述
查看文件,发现上传成功
请添加图片描述
在本地将demo代码文件删除
请添加图片描述
通过github远程仓库克隆,可以看到demo恢复
请添加图片描述
推送文本文件
请添加图片描述
推送成功
请添加图片描述

三、搭建远程私有仓库gitlab

gitlab常用命令:

命令作用
gitlab-ctl start启动所有gitlab组件
gitlab-ctl stop停止所有gitlab组件
gitlab-ctl restart重启所有gitlab组件
gitlab-ctl status查看服务状态
gitlab-ctl reconfigure重载服务
gitlab-ctl tail查看日志

首先创建虚拟机lr2,内存最少要给4G;
推荐使用国内镜像站点下载软件:点击请添加图片描述
lr2先安装相关依赖
请添加图片描述
安装gitlab包
请添加图片描述
安装完成后,server2切换到/etc/gitlab/目录下,编辑gitlab.rb配置文件,将external_url参数改为自己的ip
请添加图片描述
请添加图片描述
进行重载服务(时间长)
请添加图片描述
在/etc/gitlab/initial_root_password文件中可以看到初次登陆gitlab的密码,浏览器访问172.25.36.6,进入登陆页面,复制密码,进行登录
在这里插入图片描述
点击右侧Preferences,修改登陆密码,修改完成后点击保存
在这里插入图片描述
可以设置中文
请添加图片描述
请添加图片描述
类似前面的github,这里我们也需要给gitlab一个ssh的公钥;
lr2生成ssh密钥
请添加图片描述
将lr的公钥信息复制到gitlab仓库,完成ssh密钥的添加
请添加图片描述
添加成功
请添加图片描述
新建一个名为demo的项目,设置为私有,使用自述文件初始化仓库
请添加图片描述
lr2安装git
请添加图片描述
请添加图片描述
通过ssh克隆该项目仓库至本地,查看其内容,可以发现在/root生成了一个demo目录,进入目录,可以看到拉取到的README.md
请添加图片描述
lr查看当前的远程库以及服务状态
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值