Git 分支管理、GitLab


一、切换分支

环境:

生产环境(用户使用)

测试环境(测试使用)

开发环境(开发使用)

 

版本分支管理:

master:主分支 (主分支的代码不能有任何的问题,因为它是往线上环境部署的代码)

test分支:测试环境的代码,也就是说开发在dev分支上开发新功能完成后,在test分支上 会把dev分支的代码合并到test分支

dev分支:开发自己调试的环境

 (正常的逻辑是开发在dev分支 把自己的代码部署到开发环境中,测试在test分支 中合并dev分支的内容 并且部署到测试环境进行测试,测试完成之后,开发把代码合并到主分支,测试对主分支的代码也需要进行测试,因为合并的过程可能文件缺失 文件被删、文件冲突)

查看当前分支:

git branch 

(*星号在哪个分支的前面,就说明当前在哪个分支)

创建分支:

git branch 分支名称
 

切换分支:

git checkout 分支名称
 

合并分支:

git merge 分支名

(要合并哪个分支的内容,分支名就是哪个)

上图中我们切换到了dev分支,那么我们现在就是再dev分支中。现在,在本地修改index.txt 并保存:

 

在cmd中添加和提交文件:

 

 (上面的操作:我们进入了dev分支后对文件进行了修改)

模拟场景A:

dev的代码合并到test分支:

1、先切换到test分支

2、在test分支上,合并(加上)dev分支的代码

这时我们文件的内容如下,相当于在test分支合并了dev分支的内容:

 

现在,我们又打开记事本,进行操作,并且进行添加和提交:

 

模拟场景B:

合并到master分支,往线上环境部署:

1、先切换到master

2、test分支合并到master

 总结:当前所在的分支不同,文件的内容也不同,我们通过命令进入了哪个分支,在本地修改的就是哪个分支的内容。如果哪个分支需要合并别的分支的内容,就要先进入哪个分支,再使用合并命令,添加别的分支的内容。

gitlab私有云

平台:http://47.95.142.233/dashboard/projects#login-pane

注册:rw222@qq.com jiarq 八位

在平台复制要克隆的仓库地址

本地cmd进入桌面 在桌面克隆仓库

 

 在本地进行编辑:(每次本地编辑后都要add 和commit)

把本地的代码提交到平台:

本地与GitLab平台之间缺少通信的信任,所以需要配置密钥:

1、进入仓库, 先生成密钥 ssh-keygen -t rsa -C "邮箱@qq.com"

2、在GitLab配置密钥 在本地找到生成的密钥 配置到GitLab的ssh-key

找到密钥位置,打开下面文件并复制内容:

在平台中SSH Keys 中粘贴 并添加

远程提交到平台

git push

当git push的时候出现 ! [remote rejected] master -> master (pre-receive hook declined) 那么说明没有权限提交,需要联系仓库的负责人

 

平台的内容同步到本地

git pull 
git pull origin master --allow-unrelated-histories

如果有权限还不能push,就需要先同步(把平台的内容同步到本地)再push(远程提交)

 问题:测试环境测试通过后,开发把代码合并到主分支,还需要测试吗?为什么?

1、需要测试

2、理由: 开发在合并代码的过程中,会存在如下几个可能性:

A、文件冲突,但是没有解决冲突,直接删除冲突的文件

B、文件删除导致文件缺失

1、Git环境搭建

2、GIT基本使用

A、仓库创建

B、账户邮箱配置

C、提交文件,查看状态

D、日志查看

E、合并

F、分支管理

3、Git与GitLab整合

A、配置密钥

B、代码同步和push

Git