zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Git版本控制系统-分支介绍及操作(六)

Git 操作 介绍 版本 分支 控制系统
2023-09-14 09:15:44 时间

git分支介绍

首先项目建立,会有主干master,每一个开发人员从主干上拉取代码到本地,形成一个分支,一个开发可以使用无数个分支,首先在自己的分支上修改代码,当代码写的没问题后,要先将master上的代码拉到分支上,与分支进行测试后没问题,在将分支的代码与maste代码进行合并。

在这里插入图片描述

在这里插入图片描述

1.git分支操作

1.1.创建分支

git branch 分支名

git branch -d 分支名

1)使用git branch创一个分支
[root@192 ~]# cd /data_git/
[root@192 data_git]# git branch bug

2)查看所有分支,带*号表示当前在哪一个分支
[root@192 data_git]# git branch
  bug
* master

3)删除一个分支
[root@192 data_git]# git branch -d bug
已删除分支 bug(曾为 a5fe3d8)。

1.2.切换分支

1)进入刚刚创建的bug分支
[root@192 data_git]# git checkout bug
切换到分支 'bug'
[root@192 data_git]# git branch 
* bug
  master

bug分支会记录有master上的所有文件内容

1.3.在分支上创建新功能并提交至本地仓库

[root@192 data_git]# vim file1
[root@192 data_git]# cat file1
jiangxl
sadj
sdjl;a
akjskl
dsjj
sdalk
sdajlkl
[root@192 data_git]# git add .
[root@192 data_git]# git commit -m "修改了file1"
[bug 8a57ed8] 修改了file1
 1 file changed, 3 insertions(+)

1.4.分支代码合并

合并分支首先要将master分支拉取到本地,测试没问题后再将matser代码与分支进行合并

合并分支,基于dev分支,将master分支的内容合并至dev分支,在dev上进行测试功能

要时刻保持与master上的代码是一致的

合并代码语法:

master合并bug就需要在master分支执行合并命令

bug合并master就需要在bug分支执行命令

1)当前分支
[root@192 data_git]# git branch 
* bug
  master
  
2)在bug分支合并master代码
[root@192 data_git]# git merge master 
Already up-to-date.					#此输出表示master无最新代码

3)在master分支合并bug分支,首先切回到master,在使用merge命令进行合并
[root@192 data_git]# git checkout master
切换到分支 'master'
[root@192 data_git]# git merge bug
更新 a5fe3d8..8a57ed8
Fast-forward
 file1 | 3 +++
 1 file changed, 3 insertions(+)			1个文件改动,3行插入

1.5.分支合并时出现冲突

分支合并冲突会出现在两个开发同时修改同一个代码文件的同一行,提交时会提示合并冲突

在这里插入图片描述

1)首先进入bug分支新建一个file7并提交到本地仓库
[root@192 data_git]# git branch
* bug
  master
[root@192 data_git]# vim file7
[root@192 data_git]# cat file7
jiangxl.com
docx.jiangxl.com
www.jiangxl.com
[root@192 data_git]# git add .
[root@192 data_git]# git commit -m "file7--3hang"
[bug 884a629] file7--3hang
 2 files changed, 3 insertions(+), 1 deletion(-)
 delete mode 100644 file4.txt
 create mode 100644 file7

2)切换到master也建一个file7并提交
[root@192 data_git]# git checkout master 
切换到分支 'master'
[root@192 data_git]# vim file7
[root@192 data_git]# cat file7
jiangxl
jiangxl
jiangxl
jiangxl
[root@192 data_git]# git add .
[root@192 data_git]# git commit -m "file7"
[master 2bf2d7f] file7
 1 file changed, 4 insertions(+)
 create mode 100644 file7

3)切换到bug分支在进行合并会报错冲突
[root@192 data_git]# git checkout bug 
切换到分支 'bug'
[root@192 data_git]# git merge master 
自动合并 file7
冲突(添加/添加):合并冲突于 file7
自动合并失败,修正冲突然后提交修正的结果。

4)解决冲突,与对应的开发协商好保留哪些代码,如果都保留则把1/5/10行删掉
[root@192 data_git]# vim file7
<<<<<<< HEAD				#当前分支的
jiangxl.com
docx.jiangxl.com
www.jiangxl.com
=======
jiangxl
jiangxl
jiangxl
jiangxl
>>>>>>> master				#master分支的
修改完文件重新提交至本地仓库
[root@192 data_git]# git add .
[root@192 data_git]# git commit -m "merge解决"

5)切回到master进行合并
[root@192 data_git]# git checkout master 
切换到分支 'master'
[root@192 data_git]# git merge bug 
更新 22fddd3..e7821a1
Fast-forward
 file8 | 3 +++
 1 file changed, 3 insertions(+)

6)查看文件,已经合并
[root@192 data_git]# cat file7
jiangxl.com
docx.jiangxl.com
www.jiangxl.com
jiangxl
jiangxl
jiangxl
jiangxl