Git的分支管理

132 阅读2分钟

具体开发模式

在公司中,master分支往往用于发布比较稳定的版本,而日常的开发都是基于dev进行的。目前较为常用的开发模式为:

1.每个人都从dev上拉取一个自己的分支进行开发,开发完成,确保没问题之后将自己的分支推送到远端;

2.由相应的负责人(也可能是你自己)将最近的修改整合到dev分支;

3.当一个迭代完成之后,会由开发组长来将dev分支的改动整合到master分支上。

基本使用篇就是基于这个背景下进行演示的,当时只是简单的完成了第一步,今天会写到合并分支的相关操作以及Git采用分支的原理。

分支操作

首先查看分支:

image-20200709113531353

将dev分支的代码提交之后,需要与master分支合并,首先需要切换到master分支上:

$ git checkout master

image-20200709113624419

然后我们将自己分支的结果合并到dev分支上:

$ git merge dev

在合并过程中可能会有冲突,进行解决之后再次提交即可。**Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。**疑惑的点出现了,我们每进行一次迭代就会伴随着Git分支的创建、合并、删除,在Git中的处理岂不是会很繁琐?

Git分支原理

其实Git管理项目版本是基于生命线来管理的,每一次提交都是这条线上的一个节点:

7E123C27CD92F86A0BFE1A8FDF5A2FA17

master分支其实就是一个指针,它指向了自己所处的版本;而HEAD指针则是代表当前分支的意思,表示当前分支为master分支。执行checkout -b dev之后,就会在master所指的位置再添加一个dev指针(dev后面可以指定具体的远程分支,表示从指定分支拉取)。

之后两个分支正常沿着各自的生命线走,当前分支(HAED)为dev分支。

7E123C27CD92F86A0BFE1A8FDF5A2FA71

需要将dev合并到master分支上时,需要解决相应的冲突,之后进行分支合并:

fdaf

所以,在Git上进行分支操作时,涉及到的仅仅是引用的重新赋值,而不会导致太大的性能损耗。