💯 作者: 俗世游子【谢先生】。 8年开发3年架构。专注于Java、云原生、大数据等领域技术。
💥 成就: 从CRUD入行,负责过亿级流量架构的设计和落地,解决了千万级数据治理问题。
📖 同名社区: 51CTO、 掘金、 gitee。
前言
上一章我们已经介绍了DevOps的流程和在DevOps管理下的生命周期,接下来介绍一下在整个生命周期中所涉及到的工具
首先是版本控制工具
版本控制
现在什么文档云之类的产品,都存在版本控制的功能。版本控制是一种记录,我们可以将其理解为一个“数据库”,记录着我们对某一文件或某数据的操作记录,当我们需要查看或者对比之前的某一个版本的时候可以很方便的展示出所有改动的细节。
为什么需要版本控制
版本控制
版本控制绝对是最主要的一个目的。
原始做法是我们在本地手动进行备份操作,但是随着时间的推移,却不记得哪个备份是最新的,每个备份分别进行了什么修改,什么时候修改的等等一切问题。
而版本管理软件能解决这些问题,它有详细的日志,能记住你的每一次提交、每一次改动,并且能够比较查看不同版本之间的异同,并且可以恢复到之前的任一版本。
数据备份
这是一个主要的原因了。虽然数据备份同样可以用比较笨的方法:本地复制副本,但这种古老的方法有很多不足,无法应对频繁的修改,并且还会造成成版本混乱,不便于管理,并且占用空间极大。
多人协作
及时提交更新代码,能让团队中的成员了解到代码的最新情况,避免重复劳动。
Git
Git作为主流版本控制工具,其江湖地位是毋庸置疑的。
这么说吧:本人在16年工作能够在众多成员之中脱颖而出当选组长,很大一部分还要归功于对Git的了解
Git的特点
直接记录快照
Git 把数据看作是对小型文件系统的一系列快照。 在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。 为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
近乎本地执行的操作
在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。 如果你习惯于所有操作都有网络延时开销的集中式版本控制系统,Git 在这方面会让你感到速度之神赐给了 Git 超凡的能量。
因为你在本地磁盘上就有项目的完整历史,所以大部分操作看起来瞬间完成。
保证完整性
Git 中所有的数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。 这个功能建构在 Git 底层,是构成 Git 哲学不可或缺的部分。 若你在传送过程中丢失信息或损坏文件,Git 就能发现。
安装Git
Windows下安装Git非常简单,点击下载,傻瓜式安装
CentOS下安装如下操作
非常简单就完成了Git的安装,最后可以通过git --version
验证安装是否成功
基本操作
配置环境
在安装完成Git之后,我们要做的第一件事就是设置你的用户名和邮件地址。每一个提交记录都会使用这些信息,并且提交记录中的用户信息不能被修改:
这里需要注意,--global
表示全局配置,使用了该配置,那么当前命令只需要运行一次。如果想要在针对特定目录使用不同的用户和邮箱,那么只需要在特定目录下指定不带--global
的命令即可
如果我们想要查看配置的话,可以通过git config --list
来列出当前Git下的全部配置信息
获取Git仓库
获取Git仓库的方式有两种:
- 将尚未进行版本控制的本地目录转换为 Git 仓库
- 从远程仓库克隆一个已经存在的Git仓库到本地
两种方式各不相同,接下来我们一一了解到
在已存在的目录中初始化
进入到指定的目录中,然后执行如下命令
当前命令会在目录下创建一个.git
的隐藏目录,该目录下包含了Git初始化仓库所需要的全部文件,且这些文件是整个Git的核心
如果对其中的文件内容感兴趣的话,可以通过查看Git内部原理进行查看
这里只是初始化好了仓库,但是并未进行版本控制,接下来我们将文件进行控制
如果想要将本地文件推送到远程仓库中,那么需要进行如下操作
从远程仓库克隆
远程仓库是指托管在因特网或其他网络中,根据职责不同,对不同的仓库提供不同的操作权限。
这里以gitee远程仓库为例
推送之前的操作都是一样的,这里就不过多介绍
查看Git历史
通过git log
命令我们可以当前仓库下的提交记录,默认情况下,记录会按照时间先后顺序列出所有的提交,最近的更新排在最上面。
分支管理
这么说吧:我们开发的系统作为基础版本,在更新迭代的过程中出现某种特殊需求但是不想影响到基础版本的时候,我们就可以已基础版本为基础,独立出一个新的分支出来,这样两边可以互不影响。未来也可以将某些改动合并到其他分支上
开枝散叶懂不懂
到这里就不介绍Git了,下面我们来介绍一下远程仓库
这里不是Git入门介绍,简单介绍一下也是为了方便后续DevOps的学习
更多关于Git的知识,请移步Git官网进行学习
远程仓库
到目前为止,我们已经有办法使用 Git 来完成日常工作。 然而,为了使用 Git 协作功能,我们还需要有远程的 Git 仓库,也就是代码托管平台。
这里为大家提供几个以供大家选择:
- Github作为目前最大的 Git 托管平台远近闻名,不过只能免费创建公共仓库,并且由于国内环境影响,需要科学上网
- Gitee是我个人在使用的,国内比较著名的提供代码托管服务的一款产品,支持创建私有仓库,也可以根据自己需要选择是否需要开通企业版本
以上的都属于公共云服务,一般企业会自己搭建私有云仓库,虽然Git也提供了相对应的功能,但是我们选择更现代,功能更全的 Git 服务器
GitLab
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。可以说是企业自建私有仓库的首选。
接下里我们就使用GitLab来搭建一个代码托管平台
安装
📌 需要注意的是:安装GitLab服务器最低配置为4GB
接下来采用原生安装和Docker安装方式,大家任选其一
服务器安装
- 首先,更换GitLab的下载源。这里选择清华源。
- 开始执行下载安装
- 基础配置
服务器安装方式需要先进行简单的配置,通过编辑/etc/gitlab/gitlab.rb
下的内容进行操作
根据需要选择开启配置,比如smtp等
然后执行gitlab-ctl reconfigure
重新配置并起到了启动服务的作用
- 启动服务
通过gitlab-ctl
来执行相关操作,比如启动服务,查看状态等
Docker安装
Docker发展至今已经是一个成熟的技术,通过自成容器的方式进行资源隔离,并且能够充分利用我们的服务器资源。放心大胆的用吧。
如果对Docker和DockerCompose不了解的同学别急,后面会有专门的介绍
创建docker-compose.yml
执行docker-compose up -d
等待执行完成,通过docker-compose logs -f
查看日志
初始登录密码&修改密码
GitLab超级管理账户为 root ,然后通过cat /etc/gitlab/initial_root_password
查看初始登录密码,方便登录Web界面
Docker安装需要先进入到容器内部才能进行查看
docker exec -it gitlab cat /etc/gitlab/initial_root_password
这里登录进去之后最好修改一下初始密码,修改方式如图。修改完成之后需要重新登录
实战操作:推送本地项目到远程仓库
安装配置完成之后,整体的操作就和使用Github,Gitee是一样的了,我们这里就快速在本地创建一个项目,然后将其推送到远程仓库上
这里我采用SpringBoot项目
现在,本地项目已经创建好了,机智的大家肯定也做得到,接下来开始推送远程仓库
- 首先,现在GitLab上创建一个新项目,也可以说是一个仓库
- 在仓库创建完成之后,初始化的README.md文件中记录了一些基本信息,同时我们也可以对其进行修改。接下来就开始提交我们的代码吧
完整执行命令如上,到这里就已经能够能够将我们本地的文件推送到Gitlab了
最后
到这里我们对Git&GitLab的基本操作就介绍到这里,大家下去可以自己尝试搭建并且玩一玩,指不定某天就能排上用场,升职加薪指日可待😁