应用gitflow建立代码开发标准化流程
2010-10-25我们已经使用git进行版本管理,为更好地进行协同开发工作,需要对流程进行规范
shopqi网店平台 产品开发将遵循此流程, 以下对git的开发流程进行描述
开发流程
在开发的过程中存在以下情况:
情况1: 开发新特性
情况2: 紧急修正生产环境中报告的Bug
情况3: 支援其他成员,帮忙调试
假如我们在master主分支中进行新特性的开发,这时如果发生情况2,处理起来比较麻烦。
正确的实践应该是:
- master主分支保致与对外发布的版本同步
- 每个新特性(feature)都有独立的分支
- 将多个新特性(feature)分支合并至发布(release)分支
- 待发布(release)分支完成后再合并至master主分支,正式对外发布
应用gitflow
gitflow是开源的标准化git流程协助工具,项目地址在 http://github.com/nvie/gitflow
安装(Ubuntu环境)
wget -qO- --no-check-certificate http://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | sudo sh sudo apt-get install opt
其他操作系统安装gitflow请参考 http://github.com/nvie/gitflow
使用方法
#初始化(提问时回车就好) git flow init
开发新特征
git flow feature start <name> [<base>] git flow feature finish <name> #列出新特征分支 git flow feature
准备发布版本
git flow release start <name> [<base>] git flow release finish <name> #列出发布分支 git flow release
< base >是位于develop分支的commit
修正紧急Bug
git flow hotfix start <name> [<base>] git flow hotfix finish <name> #列出修正分支 git flow hotfix
支援其他成员工作
git flow support start <name> <base> #没有finish?(待实践) #列出支援分支 git flow support
< base >是位于master分支的commit
结合github
上传未完成的feature分支
#git push REMOTENAME BRANCHNAME #一般情况下REMOTENAME即为origin, BRANCHNAME为以feature/为前缀的分支名称 git push origin feature/orders
注意:对于develop分支,由于所有成员的本地库中都有,所以不能上传