团队开发-gitflow工作流

我们通常在工作中都会用git或者svn来管理我们的代码,那么如何高效的存储,管理我们的远程仓库,在团队开发中提高效率就显得非常重要

什么是gitflow工作流

贯穿整个开发周期,master和develop分支是一直存在的,master分支可以被视为稳定的分支, 而develop分支是相对稳定的分支,特性开发会在feature分支上进行,发布会在release分支上 进行,而bug修复则会在hotfix分支上进行,这里主要讲远程仓库管理的一些方法

首先,项目中又两条长期的分支
  • 主分支 master(线上)
  • 开发分支 develop(日常开发分支)

线上分支即为跑在线上的代码,用户可访问的线上网站

develop即为日常开发分支,工程师开发完毕后的代码检测(code review)后会申请合并进入dev分支

其次,项目中还有三条短期分支
  • 功能分支 feature-branch
  • 线上补丁分支 hotfix-branch
  • 主分支 test(预发分支)

这三条短期分支,在开发完毕后,就需要被合并进master或者是dev分支里去,原来的分支可以在合并后被删除

feature是项目迭代的功能分支会被分发给工程师开发

hotfix是一般线上出问题,拉取的紧急分支,需要被马上修复合并上线的分支,一般这个分支的开发权重最高

test是上线前交给测试检查的分支,一般是部署在公司内部测试域名下的,通过test分支后才会被允许合并进master分支

为什么?因为它们的修改结果持续影响这后续的开发和维护,必须合并以保证代码的一致性。

如果你没有认识到这个特性很有用,那是因为你的开发工作还没有复杂到一个程度,一个必须要规避代码干扰、保证并行推进的程度。

对于小型项目和团队来说,基于GIT的中心式协作模型和特性分支模型就足够了;GitFlow模型适合中型、大型项目和团队。