git flow 研发过程应用
我们前段时间从SVN切换到Git,经过培训与一段时间的使用,大家对git的基本使用比较熟悉,但对git flow还是不太熟练。下面就简单介绍一下各分支意义,以及开发过程中的应用场景。
常用分支(流程默认)
-
Master 分支(Production)
最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改
-
Develop 分支
开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支
-
Feature 分支
新的功能分支,开发完成后,合并回Develop分支进入下一个Release
-
Release 分支
发布一个新Release的时,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支
-
Hotfix 分支
生产上发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release
实际项目阶段应用
1. 初始项目
- 建立Master,Develop分支。
- Master分支为锁定状态,开发人员无权限操作。从服务器上clone之后,默认切换到Develop分支。
- 此步由Master管理员完成。
2. 功能开发(相对独立,较大功能)
- 开发功能时,在本地建立Feature分支,完成功能开发测试后,合并加Develop分支。
- 此步为开发人员自行完成。
3. 生产发布(正常版本)
- 基本完成所有功能开发,准备交付测试时。建立Release分支,在此分支上进行bug的修改与少量小功能的增加优化。
- 到版本发布前,所有修改在此分支进行,不属于此版本的功能增加,切换回Develop分支参考第2种情况进行。
- 版本发布后,合并分支到Develop和Master,并在Master分支打tag为release-v1.x.x
- 合并与tag建立由Master管理员完成。
4. 生产紧急bug修复(包括紧急功能增加)
- 从Master分支创建Hotfix分支。
- 完成问题修改后,合并回Master和Develop分支,建议删除此分支并做tag。
- 合并与tag建立由Master管理员完成。
参考: