Git之分支概念,以及使用乌龟演示创建分支,查看分支,操作分支,合并分支,删除分支


Git的分支是一个非常的好的东西,在实际开发,常常用来区分正式版本和开发者版本,相对SVN等,合并分支更优化简单,得到很多人青睐,基本上现在都是用Git了。

分支概念

1.从分支存在的必要角度解释

其实分支,分支,字面意思就明白,分别从动词和名词角度来看,分支动词意为可以分出支线,这样就能区别版本,做到互不干涉,而名词来看单一分支看作一个工作线路,我们可以自己给这个线路起名,可以是生产版本,正式版本,也可是有特定功能的版本,但其归根结底还是为了最后发布上线,变成一个正式版本,所以其实分支的命运最后还是难逃合并,除非这个分支在实现功能失败了或者最后这个分支的需求不需要了,那么才不会进行合并!!

2.从Git设计角度看

软件设计都是服务于需求,又或者说我们人做每件事都是源于需求,所以开发过程也是会分阶段开发的,而每阶段我们都会上传或者做好一个事情,那么这个工作线路的每个阶段或时间点,在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。而在我们没有主动创建分支的时候,在Git里也会有分支,这个分支叫主分支,即master分支。HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
在这里插入图片描述
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。如果你此前有跟着我的博客使用乌龟操作就会发现在我们在图形化界面里就可以看见每次提交同步等操作都会看见
在这里插入图片描述
而我们使用分支实际上是使用分支的指针引用,在Git中并没有要求一切分支都要从主分支再分出去,所以就实现了一种灵活性,我可以创建一个dev1,还可以在dev1基础在创建一个dev1.11,dev1.2或者根据需求,做分支实验以需求命令都是可以的。
单一分支的提交都是最新的推送给前一时间点(假设c1为前一时间点,c2为最新时间点)
在这里插入图片描述

好回到最初这个图,HEAD即为我们的就是这个指针,HEAD指向谁就是当前用着谁,可以切换,但是实际上提交或者同步那一刻只会在一个操作只会记录到一个分支上。
在这里插入图片描述
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。

创建分支

当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
在这里插入图片描述
接下来使用乌龟做一个演示:
在此一个本地仓库工作目录空白处右键乌龟然后就有切换/检出和创建分支,以下先演示使用切换/检出演示,在命令行中的关键字是checkout
在这里插入图片描述
在切换页面,勾选新建分支就会新建并切换至该分支
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

再操作一次切换,可见分支选项变为dev1
在这里插入图片描述
点击…查看分支
在这里插入图片描述
至此切换成功

接下来演示用创建的快捷指引,点击指引后
在这里插入图片描述
按确定,创建成功,而此方法只是创建,不会主动切换
在这里插入图片描述
在这里插入图片描述

查看分支

除了在切换处可查看分支还可以右键工作目录空白处,再乌龟再移到版本分支图,点击既可以查看
在这里插入图片描述

在这里插入图片描述

操作分支以及合并分支

不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变,即主分支就停留在那个时间点。
在这里插入图片描述
工作可以根据实际切换提交同步,两分支是互不影响的,除非是合并了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以很多很多岔口,被合并者会合并节点被影响,而往往被影响的是主分支(主线),当然也有可能是许许多多,各种各样的分支,合并就是把东西插入那个分支(名词)。

接下来就演示:
以下演示的合并思路是这样的(注意:箭头是指同步哪里的内容,不同分支是不会互相影响的,即dev1v2这个版本是不会主动消失的)
在这里插入图片描述

先切换master,右键工作目录空白,移到乌龟,再移到切换,在选择master
在这里插入图片描述
在仓库工作目录创建一个test.txt,写入这是master分支的一个文件,保存,然后右键test.txt乌龟添加,进入暂存区,再提交,填日志,保存至版本库。
在这里插入图片描述把文件夹内的hello3,也写入写入这是master分支的一个文件,保存,然后右键test.txt乌龟添加,进入暂存区,再提交,填日志,保存至版本库。
在这里插入图片描述
这样实际上master已经走了两个时间点了,也就是也可以说是在本地已经领先两个版本了。然后切回dev1:
假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:在这里插入图片描述
在dev1版本库里是没有hello3.txt和test.txt,刚接触的应该会奇怪,怎么hello3也没有,其实hello3严格意义来说,只是在这个目录,但是并不存在于这个工作目录,至于怎么操作去看我之前发的第一篇博客吧,就是它本来就不属于这个git的工作范围内,自然也没有。再切换回master:
在这里插入图片描述

在这里插入图片描述
证明确实是互相不干扰的

接下来演示合并:
先切换dev1,创建zhangsan.txt(法外狂徒又回来啦哈哈),然后添加提交,写日志添加zhangsan.txt到的dev1分支,确定提交,保存版本库
在这里插入图片描述
然后切回主分支master,将dev1合并至master

在这里插入图片描述
选择从哪个分支合并到master,选择dev1,确定

在这里插入图片描述
在这里插入图片描述

删除分支

在这里插入图片描述
由于此处合并的两个分支没有操作同名文件,和做一些让git,难以判断的事情,所以没有造成冲突,如果又冲突需要手动解决在此前的博客也讲解过,点击跳转博文Git之基于图形界面工具乌龟克隆远程仓库到本地演示(乌龟使用ssh和https还有git自带bush命令克隆),以及同步冲突解决演示
就不演示了,看此前操作就可以,很类似,就是手动解决,自己调节顺序,以及将git生成的删除即可。

合并后,界面有个删除分支按钮,如果不需要了,就可以直接删除。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击删除分支后,按确定即可
在这里插入图片描述

至此分支相关也演示和讲解完毕

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值