第四章 git分支操作

,
图从左到右看

自己的理解:正常情况 开发人员可以多分支开发,最后合并到主分支 测试人员测试 运维部署到服务器 服务器代码需要升级建立一个分支

4.1什么是分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)

简单来说就是在使用版本控制工具开发的过程中,同时推进多个任务(并行互不影响)

在这里插入图片描述

4.2分支的好处

  1. 同时并行推进多个功能开发,提高开发效率
  2. 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4.3分支的操作命令

分支名称 作用
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上
git branch -D 分支名 删除分支

4.3.1 分支操作

①创建分支和切换分支

其中的*代表当前所在分支为master

在这里插入图片描述

②在两个不同分支分别做不同修改

合并分支时一定是涉及到两个分支。这两个分支一个是“当前所在分支”,一个是“目标分支”。
命令写法:git merge 目标分支
所以分支合并命令的本质就是把“目标分支”合并到“当前分支”。

例如:把hotfix合并到master git merge hotfix 需要确保当前所在的分支是master

例如:把master合并到hotfix git merge master 需要确保当前所在的分支是hotfix

将hot-fix当前的版本合并到master分支
在这里插入图片描述

②合并分支冲突

产生冲突的原因:
分支合并时,如果在不同分支对同一个文件的同一个位置有两套完全不同的修改就会产生冲突。
git无法帮我们决定使用哪一个。必须人为决定新代码内容。
在这里插入图片描述

冲突的具体内容

在这里插入图片描述

(1)冲突解决
  1. 将特殊符号删除修改成自己需要的内容
    特殊符号
<<<<< HEAD 
内容冲突1
=======
内容冲突2
>>>>>>hot-fix
  1. 查看状态(检测到有文件有两处修改)MERGING表示冲突
    在这里插入图片描述
  2. 添加暂存区提交本地库
    注意:此时使用git commit命令时不能带文件名 不然报错
    在这里插入图片描述

4.3.2 分支的底层实现

在这里插入图片描述
master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的
所以创建分支的本质就是多创建一个指针。“
HEAD如果指向master,那么我们现在就在master分支上。
HEAD如果指向hot-fix,那么我们现在就在hot-fix分支上。:
所以切换分支的本质就是移动HEAD指针。

通过下面文件也可以查看HEAD指向哪个分支
当前路径是本地库中的.git文件夹中
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wyr1235/article/details/128826197