git分支设计策略

项目中应该有多少git分支,每一条分支应该承担怎样的作用?怎样对一个项目设计合理的分支,并管理它们?

前言

git作为版本管理工具,已经成为了软件开发流程中的事实标准。越来越多的开发者使用git来管理他们的项目,但有多少开发者思考过,项目中的git分支为何有这几条,如果要重新设计这些分支以及定义它们需要承担的任务,那应该遵循何种策略。本文将会对这些内容做简要介绍。

git及其服务的作用

简单来说,它们的作用可以概括为:

  • 版本管理
  • 多人协作
  • 软件工程管理
    其中的git作为工具本身提供了版本管理的能力,而git服务常以服务器提供服务的形式而存在,提供了多人协作的能力,这样的服务可以是公有的(如GitHub),也可以是私有的服务。他们两者在一起提供了在软件开发流程中的管理能力。

本地一条分支方案

在考虑对一个体系进行设计时(如设计一个项目的git分支),可以从最简单的情况开始考虑。即只有一条本地分支master。此时,作为设计者的你可以想象,这样的结果满足上文提到的若干作用吗?

其能够实现的作用为:

  • 版本管理:单一版本管理
  • 多人协作:无法进行多人协作
  • 软件工程管理:开发/测试/发布等流程只能串行执行

对于只有一条master分支的情况,只能管理项目的一个版本,同时由于是在本地的,所以无法进行多人协作。且软件工程中的各项流程,只能串行执行,即只有开发完成才能进行测试,测试完成才能进行发布。发布以后,若要再进行开发,会修改原有发布的代码。(在不进行一些回退操作的前提下)

端云一条分支方案

在原有本地一条master分支的基础上,增加一个中心化的仓库,即远程master分支。这样的分支策略可以实现:

  • 版本管理:单一版本管理
  • 多人协作:能够多人协作
  • 软件工程管理:开发/测试/发布等流程之间允许部分并行

相比本地一条分支策略,该策略能够支持多人协作,以为多个开发者可以将自己修改的代码push到云测,同时也可以pull别人最新的代码到本地。同时,软件开发流程各个步骤中,允许部分并行。即可以在本地进行开发,开发完成后push到云侧。云侧在进行测试的时候,本地依然能进行新功能的开发。

本地两条分支方案

端云两条分支方案

分支设计策略

  • 端云的作用?
  • 多分支的作用?

分支设计方案推荐与特点

未完待续

你可能感兴趣的:(git分支设计策略)