什么是持续集成?
持续集成(Continuous integration,简称 CI)。
根据敏捷大师 Martin Fowler 的定义,“持续集成是一种软件开发实践。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度。
为什么要持续集成?
1 快速发现错误:每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
2 防止分支大幅偏离主干:如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
下面是持续集成的图谱介绍:
1 将更改提交到代码管理仓库
2 持续集成服务器收到请求拉取变更代码
3 持续集成服务器编译代码
4 持续集成服务器跑代码相关测试
5 持续集成服务器测试结束
6 持续集成服务器对结果进行反馈 Docker 在持续集成中的作用:Docker 提供代码编译、打包、测试的相关环境。
优势:
1 环境可以是是任意版本
2 节省空间
3 环境相对隔离
什么是 Git?
Git 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
GitHub 官网注册:https://github.com/
Git 客户端安装:yum install –y git
Git 常用命令:
1 初始化 git 项目
git init
2 查看当前项目状态
git status
3 新建文件并再次查看状态
echo “# My Project” > README.md
git status
4 记录当前操作,记录新加入的文件并再次查看状态
git add README.md
git status
5 记录当前更改并加以信息描述
git commit 文件名 -m’add my first project’
6 查看提交历史
git log
7 新建远程仓库
git remote add origin https://github.com/limingios/git-test.git
8 同步到远程仓库
git push -u origin master
9 从远程代码库同步到本地
git pull origin master
10 与同步前对比变更
git diff HEAD
11 查看当前更改变更
git diff --staged
12 恢复到为更改状态
git reset README.md
13 覆盖本地文件
git checkout octocat.txt
14 新建分支
git branch feature1
15 切换分支
git checkout feature1
16 删除本地分支
git branch –d feature1
Git hook 配置
Git 也具有在特定事件发生之前或之后执行特定脚本代码功能(从概念上类比,就与监听事件、触发器之类的东西类似)。Git Hooks 就是那些在 Git 执行特定事件(如 commit、push、receive 等)后触发运行的脚本。
按照 Git Hooks 脚本所在的位置可以分为两类:
本地 Hooks,触发事件如 commit、merge 等。
服务端 Hooks,触发事件如 receive 等。
下图为 github 的 webhooks:
下图为 gitlab 的 webhooks:
两者在使用上并没有什么不同,使用命令也是完全兼容的。