[关闭]
@Roy270490837 2017-08-12T01:46:50.000000Z 字数 4180 阅读 2223

git-flow流程规范

git-flow


git flow是什么

GitFlow是构建在Git之上的一个组织软件开发活动的模型,被誉为是在Git之上构建的一项软件开发最佳实践,来源于Vincent Driessen一篇名为“一种成功的Git分支模型”的博文。
它定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。
与feature branch workflow比起来,GitFlow没有增加任何新的概念和命令,它只是一个git管理的规范,一个开发的指导方针。

为什么要推动使用git flow

虽然有这么优秀的版本管理工具,但是我们面对版本管理的时候,依然有非常大得挑战,我们都知道大家工作在同一个仓库上,那么彼此的代码协作必然带来很多问题和挑战,如下:

大部分开发人员现在使用Git就只是用三个甚至两个分支,一个是Master, 一个是Develop, 还有一个是基于Develop打得各种分支。这个在小项目规模的时候还勉强可以支撑,因为很多人做项目就只有一个Release, 但是人员一多,或者项目周期一长就会出现各种问题。

Definition

下面这张图是截取博文里面,我们可以看到Git Flow模型的全貌

gitflow全貌

接下来我们来介绍规范下的分支

gitFlow常用分支

主分支

辅助分支

辅助分支是用于组织解决特定问题的各种软件开发活动的分支。辅助分支主要用于组织软件新功能的并行开发、简化新功能开发代码的跟踪、辅助完成版本发布工作以及对生产代码的缺陷进行紧急修复工作。这些分支与主分支不同,通常只会在有限的时间范围内存在。
辅助分支包括

以上这些分支都有固定的使用目的和分支操作限制。从单纯技术的角度说,这些分支与Git其他分支并没有什么区别,但通过命名,我们定义了使用这些分支的方法。

更进一步

    Git Flow开发模型从源代码管理角度对通常意义上的软件开发活动进行了约束。应该说,为我们的软件开发提供了一个可供参考的管理模型。Git Flow开发模型让nvie的开发代码仓库保持整洁,让小组各个成员之间的开发相互隔离,能够有效避免处于开发状态中的代码相互影响而导致的效率低下和混乱。

所谓模型,在不同的开发团队,不同的文化,不同的项目背景情况下都有可能需要进行适当的裁剪或扩充。

Practice

可能大家会发现这种开发模式会造成develop分支多余,我也觉得develop这个分支有点鸡肋,暂时没发现可以做什么,不过还是保留吧,谁知道哪天又需要了。

Git flow工具

git-flow 是一个 git 扩展集,是完全按照标准GitFlow工作流程封装的一套git指令集合,用以帮助我们更方便的按照git-flow工作流程进行版本管理

安装

  1. brew install git-flow
  1. apt-get install git-flow
  1. wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

使用

操作演示

参考资料

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注