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 !! 这里我新建了一个txt文件)

 

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

本地与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) 那么说明没有权限提交,需要联系仓库的负责人

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

 

平台的内容同步到本地

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

 

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

1、需要测试

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

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

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

 

1、Git环境搭建

2、GIT基本使用

A、仓库创建

B、账户邮箱配置

C、提交文件,查看状态

D、日志查看

E、合并

F、分支管理

3、Git与GitLab整合

A、配置密钥

B、代码同步和push

posted @ 2022-04-29 17:28  jia---  阅读(394)  评论(0)    收藏  举报