【文末有惊喜】本文定位于为使用GIT标准分支开发流程的开发团队新人提供一份参考指南。作者: 管宜尧原文链接:https://github.com/mylxsw/growing-up/blob/master/doc/研发团队GIT开发流程新人学习指南.md
本文定位于为使用GIT标准分支开发流程的开发团队新人提供一份参考指南,其中的内容都是我们公司(http://yunsomgroup.com/)在研发团队初创时所遵循的一些开发流程标准,经过近一年的实践,虽说还有很多不足,但是随着团队经验的丰富和人员的扩张,我会适时地更新本文,分享我们在使用GIT开发流程中遇到的问题和解决方案。
本文将会持续修正和更新,最新内容请参考我的 GITHUB(https://github.com/mylxsw) 上的程序猿成长计划项目,欢迎 Star,更多精彩内容请 follow me(https://github.com/mylxsw)。
项目中长期存在的两个分支
其它分支为短期分支,其完成功能开发之后需要删除
feature/*:特性(功能)分支,用于开发新的功能,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到develop分支,之后删除该分支。
bugfix/*:bug修复分支,用于修复不紧急的bug,普通bug均需要创建bugfix分支开发,开发完成自测没问题后合并到develop分支后,删除该分支。
release/:发布分支,用于代码上线准备,该分支从develop分支创建,创建之后由测试同学发布到测试环境进行测试,测试过程中发现bug需要开发人员在该release分支上进行bug修复,所有bug修复完后,在上线之前,需要合并该release分支到master分支和develop*分支。
hotfix/:紧急bug修复分支,该分支只有在紧急情况下使用,从master分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到master分支以便上线,同时需要再合并到develop*分支。
团队中的 Git 实践(http://www.open-open.com/lib/view/open1461324562769.html)Git 在团队中的最佳实践--如何正确使用Git Flow(http://www.open-open.com/lib/view/open1451353135339.html)
功能分支的分支名称应该为能够准确描述该功能的英文简要表述
例如,开发的功能为新增商品到物料库,则可以创建名称为 feature/material-add的分支。
bug修复分支的分支名称可以为Jira中bug代码或者是描述该bug的英文简称
比如,修复的bug在jira中代号为MATERIAL-1,则可以创建一个名为bugfix/MATERIAL-1的分支。
release分支为预发布分支,命名为本次发布的主要功能英文简称
比如,本次上线物料库新增的功能,则分支名称可以为release/material-add。
基本命令这里就不多说了,基本跟以前一样,唯一的区别是注意分支是从哪里拉去的以及分支的命名规范。涉及到的命令主要包含以下,大家自己学习:
分支操作参考Git常用操作-分支管理(http://b.aicode.cc/git/2015/09/10/Git常用操作-分支管理.html)
git flow是git的一个插件,可以极大程度的简化执行git标准分支流程的操作,可以在gitflow-avh安装。
如果是windows下通过安装包安装的git,则该插件默认已经包含,可以直接使用。
使用git flow init初始化项目
$ git flow init
Which branch should be used for bringing forth production releases? - develop - feature-fulltext - feature-vender - master Branch name for production releases: [master]
Which branch should be used for integration of the "next release"? - develop - feature-fulltext - feature-vender Branch name for "next release" development: [develop]
How to name your supporting branch prefixes? Feature branches? [feature/] Bugfix branches? [bugfix/] Release branches? [release/] Hotfix branches? [hotfix/] Support branches? [support/] Version tag prefix? [] Hooks and filters directory? [/Users/mylxsw/codes/work/e-business-3.0/.git/hooks]
git flow feature git flow feature start |