Git(四)分支管理(分支的基本概念、创建新分支、切换到新分支、简单的合并分支以及删除分支)

前三篇文章讲了git的基本操作,接下来讲的是git的分支管理。

一、分支管理的概念:
1.分支:可以认为是两条互不干涉的工程流水线,但是某一天会交织在一起(分支的合并);
2.如果不好理解,可以举这样一个例子:
比如,我们的团队需要协作开发一个系统,我们负责完成A功能,并且最少需要两个周的时间完成。
问题1:我们每天都写一点代码,如果每次将不完整或者不能正确运行的功能代码上传上去,可能会导致别人的代码没法正确运行;
问题2:但是如果我们不上传代码,万一某一天文件丢失了该怎么办,风险巨大。
3.为了解决上述问题,分支应运而生:
我们创建属于自己的一个分支,别人看不到,想提交就提交,不会影响别人的开发,提交后也不用担心代码丢失的问题,知道自己的任务完成,再去将自己的分支去和团队的分支进行合并。

二、分支的分类与创建过程
git把我们提交的多个版本串成了“一条线”,实际上这条线就是我们的分支;
1.master分支:
在前三篇文章中,我所演示的所有git操作,都是在master分支上的,该分支也叫主分支
实际上,HEAD指向的是当前的分支,而分支指向的是我们当前的版本。
在这里插入图片描述
一开始,master是一条线,git使用master指向最新的提交版本,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。
2.创建新的分支的过程:
2.1假如我们要在master指向的位置开始创建一个新的分支,比如叫dev,此时git会创建一个新指针dev指向该位置,然后将HEAD指向dev,表示此时处于新分支dev上;
在这里插入图片描述
实际上这个速度比较快,只需要创建一个新指针,然后将HEAD指针指向该新指针,就表示了一个新分支的创建,工作区的文件并没有发生改变;

2.2. 接下来,我们的工作都是在dev分支上,而master指针一直在原来的位置上不动,我们每提交一个新版本,dev指针就向前挪动一下;
在这里插入图片描述
2.3. 假如我们在该分支上的工作完成了,那么就需要将dev合并到master分支上,git合并时最简单的方式是将master分支挪动到dev指向的位置
在这里插入图片描述
2.4. 如果需要删除dev分支时。直接将dev指针释放掉就好了。

三、如何创建一个分支并切换

1.查看当前在哪个分支下工作:
git branch

2.创建一个分支并且切换到该分支下,比如创建一个dev分支
git checkout -b dev 
(实际上,直接创建了一个指针指向了master指向的位置)
(分支切换指的是,HEAD指向了我们新创建的分支)

3.在dev中修改之前的code.cpp文件并且创建新的版本
git add code.cpp
git commit code.cpp
此时这些工作都是在dev分支下进行的,如下图;

4.从dev分支切换到master分支
git  checkout  master
(实际上,直接将HEAD指针指向了master)

5.合并分支,将dev合并到master
git  merge dev 
(实际上是将master指向dev指向的位置)  这里使用的是快速合并,但是一些场合不适合该方式。

6.删除分支,如删除dev分支
git branch -d  dev 

在这里插入图片描述
需要注意的是上面 合并分支的时候,使用的是快速合并方式,该方式不是所有模式下都适用。
快速合并:直接将master指针移动到dev指向的位置,然后dev分支的内容就属于了master了。

命令总结:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/KingOfMyHeart/article/details/89924575