功能分支工作流
- 创建本地分支feture_xxx
- 切换本地分支feture_xxx
- 推送本地分支至远程仓库,此时远程仓库出现feture_xxx
- 本地编辑功能
- 提交并推送至远程仓库分支
- 远程分支pull request
- 老大:merge pull request
- 切换到master,拉取master最新代码
- 切换检出,删除开发好的本地分支和远程分支feture_xxx
GitFlow 工作流
v1.0.0
->v1.0.1
hotfix补丁针对最后一位,功能模块变化第二位,大架构变化第一位
步骤
老大
- 基于master创建分支develop分支
- 切换develop,推送到远程分支
新人小红:
- 在master分支下拉取,得到远程的develop分支
- 切换到拉取的远程develop分支
- 基于develop创建自己的功能分支feture_xxx
- 切换到注册功能分支
- 本地编辑功能
- 提交并推送至远程仓库分支 feture_xxx
- pull request,base选择develop,合并到develop上
- 老大:merge pull request
开发到一个阶段,想要发布一个版本
- 切换到develop分支
- 拉取远程develop分支
- 基于develop创建预发布分支release-1.0.0(测试用)
- 切换到release-1.0.0
- 推送预发布分支release-1.0.0到服务器
- 远程切换到预发布分支release-1.0.0,感觉没问题了,把release-1.0.0 pull request,合并到master
- 老大:merge pull request
达到里程碑
- 切换到master
- 拉取远端master,更新最新代码到本地
- 基于本地master创建标签tag--正式里程碑版本1.0.0release
- 推送仓库,包括标签
此时如果有人在Issues中提出问题,有问题编号
- 检出,基于标签创建新分支(因为标签代码以及发布不能改)hotfix_(问题编号)
- 本地修改好bug
- 提交到hotfix
- pull request,直接合并到master
- 验证通过,确认合并
- 本地切换到master,拉取代码
- 创建标签1.0.1release,包括标签,推送到服务器
- 删除分支,只留下develop和master
开发中使用场景(以分支0624为例)
- 基于0624建立本地的0624分支
- 基于本地的0624分支建立自己的功能分支fetureX
- 在自己的feture分支上进行操作
- 如果0624分支上代码有更新,拉取最新的代码到本地0624
- 在本地操作,把本地的0624合并到自己的功能分支fetureX,如果有冲突,解决冲突
- 把自己的功能分支fetureX提交推送到云端分支fetureX(自己检查一下代码变化),在云端发送pullRequest请求merge代码到云端的0624
- 把merge地址发送给PM审核