CI/CD持续集成与持续交付(一)git简介、gitlab仓库搭建及其简单使用

一、git简介

1.1 版本控制系统对比

传统版本控制系统:

首先我们会在操作系统上新建一个目录,将原始版本标记为V1,当有新版本时,复制一份改动一下标记为V2。再有新版本时复制一份改动一下标记为V3。

集中化的版本控制系统: 

第一种管理方式太过繁琐,最好有一个集中化的版本控制系统集中进行管理,由服务器端帮我们进行管理版本。但是此种方式下,只要server端一挂掉版本控制就失效了。

分布式版本控制系统(git):

业界内使用最广的版本控制系统,此种方式的好处是,它不仅有server端,每个软件开发人员也能在本地操作系统上维护一套软件版本,这样的话,当server端出现故障时,不会影响本地的开发。当server端维护好了的时候,server端和本地又能做同步了。

1.2 git介绍

Git特点:

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

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

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

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

获取 Git 仓库通常有两种方式:

  • 将尚未进行版本控制的本地目录转换为 Git 仓库。
  • 从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone

1.3 git环境搭建 

 Git官方教程:Git - Book

安装git:

初始化git:

1.4 git简单使用

 

注:在暂存区就是等待往版本库里做真正的提交

此时我们做提交时,提示我们需要告诉它是以什么身份提交的:

添加本人信息,只需登陆一次,并且此信息在以后每次提交时一块提交上去,这样就可以知道是谁在什么时间提交了什么信息:

 再提交就成功了:

 

此时再查看状态显示是空的,这就表示当前工作目录、当前版本库没有任何的修改,也不需要做任何的提交。而我们已经添加到版本库的文件一直处于追踪状态,git会一直跟踪这个文件的变更。

当我们又修改了这个文件:

此时再做添加:

 

所有内容都在暂存区,可以做提交了:

git 状态总结

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。 输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。例如,上面的状态报告显示: README 文件在工作区已修改但尚未暂存,而 lib/simplegit.rb 文件已修改且已暂存。 Rakefile 文件已修改,暂存后又作了修改,因此该文件的修改中既有已暂存的部分,又有未暂存的部分。

若是有些文件或者目录下的文件我们不想让git追踪它的信息,可以编辑一个 .gitignore 文件,其中写上不想跟踪的文件名:

此时就不会显示状态了。

跳过使用暂存区域:

git commit -a -m 'added new benchmarks' :跳过add直接commit。注:不能操作新建的文件,只能操作修改的文件。

移除文件:

撤销删除:

提交删除:

但是即使是在版本库中删除了,我们也能后悔:

查看日志:

版本回退:

二、gitee仓库

2.1 gitee仓库简介

        Gitee 是由开源中国出品的代码托管平台,汇聚了国内优秀的开源项目和作者,同时为开发者提供稳定、高效、安全的云端软件开发协作平台,无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发等功能。

2.2  git连接远程gitee仓库

进入gitee,注册帐号:

进入个人主页:

 新建仓库:

通过ssh方式:

提交git源后,可以看到以后它做push和抓取的时候,都是通过ssh免密的形式来抓取的:

 我们尝试push一下:

报错说没有权限。 进去gitee设置SSH公钥:

 可以看到里面是之前server2的公钥,我们现在用的server3,在server3上做免密key:

我们需要将id_rsa.pub公钥上传:

 公钥已经上传:

此时再push就成功了:

在gitee上可以看到已经上传:

 此时我们在server3上再建立、提交、上传新文件:

此时所有文件都被提交到本地版本库当中。我们再做一个push,同步到远端服务器仓库:

 

可以看到我们刚刚新建的文件已经被同步过来了:

 如果此时我们不小心把仓库目录删掉了:

可以在gitee 的web端通过ssh密钥的方式免密克隆下来:


 

gitee是开源中国推出的基于 Git 的代码托管服务,企业版也是免费使用的,不同自己搭建环境,但是企业的项目代码放在公有服务器里面始终安全性能不高。所以下面引出了gitlab,我们将在gitlab中搭建自己的服务器和私有仓库。

三、gitlab仓库

3.1 为什么使用gitlab

        GitLab是集中服务器上管理git存储库的一个好方法。 GitLab让您可以完全控制您的存储库或项目,并允许您自己决定是公共还是私有。

3.2 gitlab特点

  • GitLab免费托管您的(私人)软件项目。
  • GitLab是管理Git存储库的平台。
  • GitLab提供免费的公共和私人存储库,问题跟踪和维基。
  • GitLab是Git之上的一个用户友好的Web界面层,它提高了使用Git的速度。
  • GitLab提供了自己的持续集成(CI)系统来管理项目,并提供用户界面以及GitLab的其他功能。

3.3 搭建私有仓库GitLab

官方下载地址:GitLab最新版下载安装_GitLab中文免费版-极狐GitLab中文官方网站

国内站点:Index of /gitlab-ce/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

安装初始化

下载rpm包之后,安装依赖性:

安装rpm包:

更改配置文件:

 

此处应该是 http://172.25.254.3 : 

 

更改完配置文件后都需要重置 gitlab-ctl reconfigure:

可以看到gitlab使用的是chef  puppet自动化配置工具。

gitlab常用工具:

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

查看服务状态:

在网页端登陆:

 在官网可以看到用户名和密码:

登陆进gitlab:

可以设置语言:

重设密码

设置SSH 密钥

添加公钥:

 

 

然后我们新建一个空白项目:

 

新建项目

创建成功:

本地克隆

使用SSH 克隆:

此时我们就已经在本地clone下来了。

添加文件并推送

我们在gitlab中已经能看见了。

我们也可以直接在web端编辑,同步到本地。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值