CI/CD-git文档1

git文档

1.什么是持集成?

在这里插入图片描述

2.什么是持续集成
在这里插入图片描述

3.什么是持续交付?

在这里插入图片描述

在这里插入图片描述

4.什么是持续部署?

在这里插入图片描述

5.版本控制工具? git
1.git基本操作
2.git 分支
3.git 标签tag
4.gitlab github?
5.gitlab 用户 组 项目之间关系?
6.gitlab配置邮箱?
7.gitlab备份 恢复?

jenkins 调度平台
1.什么是jenkins
2.jenkins安装
3.jenkins插件 ( 联网安装 | 离线安装 )
4.jenkins调用Shell命令?

5.jenkins自动化上线代码?
	
模式:	
	freestyle
	maven
	pipeline
代码:
	html
	php			非编译
	java		编译型
	python


​ 6.jenkins 通过 freestyle 构建 Html 代码?
​ 自动化上线
​ 自动化回退

​ 7.jenkins 通过 maven 构建 Java?
​ sourceCode jar war Nexus

SonarQube 代码质检
1.安装Sonarqube
2.安装SonarQube插件
3.手动推送代码至Sonarqube平台进行分析
4.Sonarqube集成Jenkins
HTMl
Java
PHP

Notify通知
成功 or 失败 ?
邮件 —> 复杂
钉钉 —> Easy

Jenkins Pipeline 流水线
Groovy代码

html	
java
改造成 pipeline的方式


Jenkins分布式构建?
Jenkins权限控制?

环境: 7台机器

Ansible
10.0.0.5 负载均衡
10.0.0.7 nginx+php nginx+tomcat
10.0.0.8 nginx+php nginx+tomcat
10.0.0.51 mariadb

jenkins
10.0.0.110 gitlab
10.0.0.120 jenkins
10.0.0.130 sonarqube

一.版本控制系统概述

1.什么是版本控制系统?

将每一次文件的变化,集中在一个系统中加以版本记录,以便后期查阅特定文件版本历史记录的

2. 常见版本控制系统svn与git区别

svn为集中版本控制系统的代表

git为分布式版本控制系统的代表

简单的理解为:SNV依赖网络,git不依赖网络.

3. git版本控制系统使用

1.yum安装git

yum install -y git

#配置git用户

git config --global  user.name  "zhangxianwei"

#配置git使用邮箱

git  config --global  user.email "837404975@qq.com"

#语法高亮

git  config  --global  color.ui  true

2.git初始化

2.1初始化工作目录
[root@m01 ~]# mkdir  git_data
[root@m01 ~]# cd git_data/
[root@m01 git_data]# git init
重新初始化现存的 Git 版本库于 /root/git_data/.git/
[root@m01 git_data]# ll -a
总用量 8
drwxr-xr-x   3 root root   18 9月  27 15:40 .
dr-xr-x---. 14 root root 4096 9月  27 15:40 ..
drwxr-xr-x   7 root root  119 9月  27 15:41 .git
2.2查看隐藏文件
[root@m01 git_data]# ll .git
总用量 12
drwxr-xr-x 2 root root   6 9月  27 15:40 branches  #分支目录
-rw-r--r-- 1 root root  92 9月  27 15:41 config		#定义项目特有的配置选项
-rw-r--r-- 1 root root  73 9月  27 15:40 description		
-rw-r--r-- 1 root root  23 9月  27 15:40 HEAD
drwxr-xr-x 2 root root 242 9月  27 15:40 hooks
drwxr-xr-x 2 root root  21 9月  27 15:40 info
drwxr-xr-x 4 root root  30 9月  27 15:40 objects		#存放所有数据内容(仓库),有info和pack两个子文件夹
drwxr-xr-x 4 root root  31 9月  27 15:40 refs
[root@m01 ~]# git config
usage: git config [options]

Config file location
    --global              use global config file
    --system              use system config file
    --local               use repository config file

三.git实战

实战一

git如何提交目录文件到本地仓库

[root@gitlab demo]# echo "62-v1" > file.txt
[root@gitlab demo]# git status
#将文件添加至暂存区
[root@gitlab demo]# git add file.txt
[root@gitlab demo]# git status
[root@gitlab demo]# git commit -m "file-v1 commit"	#将暂存区内容提交至本地仓库
实战二

如何比对本地工作目录文件内容、暂存区文件内容、本地仓库文件内容之间的差异?

[root@gitlab demo]# git diff file.txt				#本地与暂存对比
[root@gitlab demo]# git add .
[root@gitlab demo]# git diff file.txt

[root@gitlab demo]# git diff --cached file.txt		#暂存区与本地仓库对比
[root@gitlab demo]# git add .
[root@gitlab demo]# git commit -m "file-v3 commit"
[root@gitlab demo]# git diff --cached file.txt
实战三

提交内容至暂存区、或本地仓库,想回退怎么办?

1.本地提交至暂存区向回退? (当误操作本地目录的内容后,可以通过暂存区覆盖本地内容)

[root@gitlab demo]# git diff file.txt
[root@gitlab demo]# > file.txt 
[root@gitlab demo]# cat file.txt
[root@gitlab demo]# git checkout -- file.txt
[root@gitlab demo]# cat file.txt

2.暂存区提交到本地仓库向回退怎么办?

[root@gitlab demo]# vim file.txt 
[root@gitlab demo]# git add .
[root@gitlab demo]# git commit -m "file-v4 commit"		#提交了多次至本地仓库
[root@gitlab demo]# git log 

3.如果多次提交,多次回退?

[root@gitlab demo]# git reflog 	#查看所有的历史提交变更记录
[root@gitlab demo]# git reset --hard 187e808

四. git分支是干什么的

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.基于master的位置点,创建了一个新的dev分支
[root@gitlab demo]# git branch dev 
[root@gitlab demo]# git branch
 dev
\* master
2.dev分支操作如下:
[root@gitlab demo]# echo "oldxu" > file-2
[root@gitlab demo]# echo "oldli" > file-3
[root@gitlab demo]# git add .
[root@gitlab demo]# git commit -m "dev-create new 2 file"	#dev更新了位置点
3.回到master分支,更新master的位置点
[root@gitlab demo]# git checkout master
[root@gitlab demo]# echo "62-v5" >> file.txt
[root@gitlab demo]# git add .
[root@gitlab demo]# git commit -m "Master Update V5"
4.切换dev分支,合并master
[root@gitlab demo]# git checkout dev
[root@gitlab demo]# git merge master   #站在dev分支合并master  -->安全
--------------->测试检查ok
5.如果分支合并出现了冲突怎么办?
1.master上:
			[root@gitlab demo]# cat new 
			AAA
			BBB
			YYY
			[root@gitlab demo]# git add .
			[root@gitlab demo]# git commit -m "new file master"
			
		2.dev上:
			git checkout dev
			[root@gitlab demo]# cat new 
	        AAA
	        BBB
	        ZZZ
			[root@gitlab demo]# git add .
			[root@gitlab demo]# git commit -m "new file dev"
6.切换回master主干分支,合并dev分支
[root@gitlab demo]# git checkout master
[root@gitlab demo]# git merge  dev	#站在master分支合并dev
	--------------->测试检查ok--->部署
五.git的tag标签是干什么?

commitID
123456 <----v1.0
978765 <----v2.0
978765 <----v2.1
978765 <----v2.2

1.如何打标签:
[root@gitlab demo]#	git tag -a "v1.1" -m "全新升级1.1"
2.如何查看标签
[root@gitlab demo]# git tag -l
[root@gitlab demo]# git show v1.1
3.如何删除标签
[root@gitlab demo]# git tag -d v1.1
4.如何给指定的CommitID打上标签?
[root@gitlab demo]# git tag  -a "v3.0" 187e808 -m "全新3,0版本升级"
[root@gitlab demo]# git reset --hard v3.0		#方便后续的回退,或者记录当时的状态

六.git远程仓库如何使用?

实战一.如何将本地仓库与远程Gitee进行关联?

	1.注册gitee
	2.创建一个远程仓库?
	3.配置使用远程仓库
3.1) Git 全局设置:
				git config --global user.name "oldxu"
				git config --global user.email "552408925@qq.com"
	
			3.2) 将本地已有的git的仓库与远程关联
				cd existing_git_repo
				git remote add origin https://gitee.com/oldboy_oldxu/rainbow.git
				
			3.3) 本地仓库代码推送至远程仓库?  (确保本地的所有资源已提交至本地仓库)
				git push -u origin master
				
			3.4) 推送不同的分支?
				git checkout dev
				git push -u origin dev
				
			3.5) 推送tag?
				git push -u origin --tags		#推送本地所有的tag
				git push -u origin v1.1 		#指定推送某个本地的tag

实战二、将https方式修改为ssh密钥访问通讯?

1.删除与远程https仓库的关联?
		[root@gitlab demo]# git remote remove origin
		[root@gitlab demo]# git remote -v

		2.添加新的关联?-->SSH方式
		[root@gitlab demo]# git remote add origin git@gitee.com:oldboy_oldxu/rainbow.git
		[root@gitlab demo]# git remote -v
		origin	git@gitee.com:oldboy_oldxu/rainbow.git (fetch)
		origin	git@gitee.com:oldboy_oldxu/rainbow.git (push)
		
		3.在本地机器上生成一个密钥对,然后将公钥放入远程仓库?
		[root@gitlab demo]# ssh-keygen
		[root@gitlab demo]# cat ~/.ssh/id_rsa.pub		#复制public公钥内容
		
			找个右上角用户-->设置-->SSH公钥-->添加Key
	
		4.测试提交代码是否还需要输入密码
		[root@gitlab demo]# git checkout master
		[root@gitlab demo]# touch file-dddd
		[root@gitlab demo]# git add .
		[root@gitlab demo]# git commit -m "ddd"
		[root@gitlab demo]# git push -u origin master

实战三、如果现在开发的这个项目有小伙伴想加入进来怎么办?

Linux
		MacOS
			ssh-keygen
			yum install git -y
		
		Windows?
			1.下载安装一个git软件  
				http://192.168.0.128/git/Git-2.10.0-64-bit.exe 
				https://gitforwindows.org/
			2.打开 Git Bash工具
			3.使用git bash 工具 创建ssh密钥对
				ssh-keygen
			
			4.克隆项目
			 git clone git@gitee.com:oldboy_oldxu/rainbow.git

实战四. 新加入的小伙伴提交了内容,其他成员看不见怎么办?

1.登录开发B--->WIndows 修改代码进行变更操作:
				touch README
				git add .
				git commit -m "Windows push README"
				git push -u origin master
			
			2.登录开发A--->Linux
				git pull origin master	#获取到开发B提交的代码

二.git工作流程原理图

1.git原理图

在这里插入图片描述

2.git四种状态

在这里插入图片描述

二.git基础命令

git基础命令解释
git configgit 配置
git initgit 初始化
git status查看状态
git add file添加文件到暂存区域
git rm --cached file从暂存区域撤回到工作目录
git reset HEAD b.txt从暂存区域撤回到工作目录
git commit -m "add new a.txt " a.txt提交到仓库
git checkout – b.txt从暂存区恢复到工作区域 针对暂存区域的文件进行恢复(不管有没有提交到仓库)
git mv c.txt d.txtgit重命名
git diff比较工作区域与暂存区域文件是否相同
git diff --cached比较暂存区域与本地仓库
git log查看git commit的操作
git log --oneline查看git commit的操作 简化清晰
git log -p显示具体的文件改动
git log -p -1查看最近一次的文件改动
git reset --hard commit从本地仓库撤回
分支命令
git branch dev创建dev分支
git checkout dev切换分支
git merge dev合并dev分支
标签命令
git tag -a “v1.1” -m “全新升级1.1”默认给最新commit打标签
git tag -l查看所有标签
git show v1.1查看标签对应版本
git tag -a “v1.1” 187e808 -m “全新3,0版本升级”z指定版本打上标签
git tag -d v1.1删除标签
远程仓库命令
git remote add origin + 网址将本地仓库与远程仓库关联
git remove -v产看管理的远程仓库
git push origin master推送master分支到origin
git pull origin devl拉取远程仓库到本地dev分支
git clone origin master克隆远端仓库到本地
git push -u origin --tags推送本地仓库所有标签
1.删除文件

1.先从暂存区域撤回到工作区域,然后直接删除文件

git rm --cached c.txt

rm -f c.txt

2.直接从暂存区域连同工作区域一起删除

git rm -f c.txt

三.遗留问题

git log 能不能记录 删除 提交缓存区 创建文件 等操作?不能,只记录commit的操作

持续集成的目的

让产品可以快速迭代,同时还能保持高质量。

只有当项目比较大的时候,才会需要持续集成

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值