gitlab分支管理系统(多人协作开发)

这篇文章参考了以下文章:
  1,https://www.15yan.com/story/6yueHxcgD9Z/
  2,https://juejin.im/entry/56263cfd00b0023ca69de5ec

这里主要介绍gitlab如何做分支管理系统,它如何在一个项目中做到分支管理,主要解决多人协作开发的问题

目标:
  1.多人协作开发
  2.尽量减少冲突

gitlab是如何达到上面的目标的?

1,我们首先创建一个master主线,我们的整个项目将不会在这上面进行开发,但是整个项目一定是以这条主线进行开发的

2,创建一个Master的分支 develop,我们所有开发分支feature将从develop 创建分支,

3,创建一个develop的开发分支feature,我们的实际代码开发将在这个分支进行,

我们的代码开发在feature分支上进行,然后将代码push到develop分支上,最后将develop分支合并到master主线上,

到这里我们的主线master已经随着开发的进度向前推进,

说了这么多来张图说明一下这个思路

gitlab分支管理系统(多人协作开发)_第1张图片
image.png

是不是很清晰了,来条分割线


上面说了那么多貌似并没有解决多人协作开发的问题

首先我们来说说多人如何进行协作开发这个问题, 在上面我们的实际代码开发是在feature分支上进行的,feature分支又是从develop上创建来的,那么在多人开发的时候,每一个开发人员根据自己的任务各自从最新的develop分支创建一个任务feature分支,这样就存在多个feature分支了

这里每个开发人员从develop创建的分支应该是基于任务或者问题的,这样当一个任务或者问题解决后,就可以选择将改分支进行删除,所以一个feature分支对应的应该是一个任务或者问题,通常也对应一个开发人员

gitlab分支管理系统(多人协作开发)_第2张图片
image.png

在这时开发人员的本地应该是有两个分支,一个是develop分支。另一个是他从develop分支上创建出来的任务feature分支,

在这样的情况下所有的开发人员都要向develop和他们自己的任务feature分支上push代码,开发人员在自己的feature分支上完成相关开发后需要将当前feature分支合并到develop的时候,按照以下顺序来进行

1,将本地的任务feature分支push到线上对应的任务feature分支,
  2,本地切换到develop分支,并pull develop分支,确保本地develop分支是当前服务器上develop分支的最新版本,
  3,将自己的develop分支合并到develop,这时可能会有冲突,这里的冲突手动处理,处理完后再进行下一步
  4,将合并后的develop分支push到服务器上
  5,禁止将任务feature分支push到master分支上

这样一来我们就保证了线上的develop分支是没有冲突的,其他开发人员开发人员需要合并代码也是需要将线上最新develop分支pull到本地,然后合并本地的feature分支,这样就算存在冲突也只是他自己所属任务feature分支存在问题,他需要再本地处理完冲突再push到develop

情况就这么个情况,思路就这么个思路,下面再来张图说明

gitlab分支管理系统(多人协作开发)_第3张图片
image.png

这样基于任务或者问题的分支管理体系有助于解决分支管理的复杂程度,因为每一任务分支都是基于任务而不是基于开发人员,当一个任务或者问题解决之后就可以选择将分支删除,那么就可以清楚的看到当前存在的任务分支就是正在进行的任务,在多人协作开发的时候,将每个开发人员之间的协作问题转换成了每个任务之间的协作问题;

gitlab的强大远不止这里所介绍的,如有错误和不足之处欢迎指教。

你可能感兴趣的:(gitlab分支管理系统(多人协作开发))