注意事项
- 所有开发分支从 develop 分支拉。
- 所有 hotfix 分支从 master 拉。
- 所有在 master 上的提交都必要要有 tag,方便回滚。
- 只要有合并到 master 分支的操作,都需要和 develop 分支合并下,保证同步。
- master 和 develop 分支是主要分支,主要分支每种类型只能有一个,派生分支每个类型可以同时存 在多个。
master分支
最为稳定功能比较完整的随时可发布的代码,即代码开发完成,经过测试,没有明显的bug,才能合并到 master 中。请注意永远不要在 master 分支上直接开发和提交代码,以确保 master 上的代码一直可用;
develop分支
用作平时开发的主分支,并一直存在,永远是功能最新最全的分支,包含所有要发布 到下一个 release 的代码,主要用于合并其他分支,比如 feature 分支; 如果修改代码,新建 feature 分支修改完再合并到 develop 分支。所有的 feature、release 分支都是从 develop 分支上拉的。
feature分支
这个分支主要是用来开发新的功能,一旦开发完成,自测没问题(这个测试,测试新功能没问题),我们合并回develop进行提测 。
release分支
用于发布准备的专门分支。当开发进行到一定程度,或者说快到了既定的发布日,可以发布时(当进入审核环境,开启release分支),建立一个 release 分支并指定版本号(可以在 finish 的时候添加)。开发人员可以对 release 分支上的代码进行集中测试和修改bug。(这个测试,测试新功能与已有的功能是否有冲突,兼容性)全部完成经过测试没有问题后,将 release 分支上的代码合并到 master 分支和 develop 分支。
hotfix分支
用于修复线上代码的bug。从 master 分支上拉。完成 hotfix 后,打上 tag 我们合并回 master 和 develop 分支。
git flow 的工作方式
初始化分支
默认会初始化 master develop 两个主干分支。如果已有了不同分支,初始化的时候,可能需要手动指定 master 分支 跟 develop 分支。
开发分支 feature
分支的名称都是以 feature/* 开头,不需要做修改
基于develop分支,可以有多个特征分支进行开发
feature分支做完后,必须合并回develop 分支,合并完分支后一般会删除这个 feature 分支
发布分支 release
分支名称以 release/* 开头
release分支基于develop创建; 一旦创建了release分支,不能在从 develop 分支合并新的改动到 release 分支,可以基于release分支进行测试和bug修改,测试不用在另外创建用于测试的分支。
release 发布的时候,合并到 master 和 develop 分支,同时打tag,视情况删除release分支,通常应该删除掉
维护分支 hotfix(线上bug)
分支名称以 hotfix/* 开头
hotfix 分支基于 master 分支创建,开发完毕后合并到 master 和 develop 分支,同时创建 tag
这是唯一可以直接从 master 分支 fork出来的分支。
常用操作
1、feature分支开发完新功能后,自测通过该功能,合并会develop分支进行提测,并删除该分支
2、发版前(发版的功能已完成)创建release分支,测试在release分支上进行回归测试,在release分支上进行bug修复,release发布完成后,合并到master和develop分支上,同时打tag,并删除release分支
3、线上bug通常在master分支上创建hotfix,修复bug,经由测试测完后,合并到master和develop分支上
网友评论