目录
一、建立中央仓库
首先创建中央仓库,常见的中央仓库有Github、GitLab、国内的码云等等。创建完成以后克隆到本地。
我这里沿用一个旧的仓库演示:
二、新建分支
1、首先创建develop分支。
此分支主要作为功能分支的父分支。
TortoiseGit——>创建分支——输入:develop
2、将develop分支推入远端
切换到develop分支
"TortoiseGit"——>切换分支——选择develop分支——>确定
"TortoiseGit"——>推送 此步骤完成后就已经将develop分支推送到远端了。
注意此步骤一般是由项目leader、或者专门负责Git工作流的人来完成。
若有新人加入,需在master分支下拉取远端代码,就能看到develop分支了,然后基于develop分支进行开发
三、开发功能
此时开发功能需要j基于develop分支新建一个专门用于特定功能开发的新分支。例如注册功能
分支名:feature_reg
鼠标右击"TortoiseGit"——>新建分支
切换到:feature_reg 分支
进行开发工作xxxxx
开发工作完成,推送到远程仓库,就可以看到feature_reg分支下多了注册功能,其它的分支是没有的。
提交到Github以后,发起一个Pull request 将feature_reg分支合并到develop分支,注意是将feature_reg分支合并到develop分支
在这里可以进行切换
然后进行Pull request讨论后,合并完成,此时的远端develop分支,本地develop需重新拉取后,已经有新提交的注册功能了
四、发布Release
1、创建分支
在本地基于develop,创建名为:"release-1.0.0"的分支 ,并切换到release-1.0.0分支
到这一步,开发完成,接下来就是进行功能测试,如果有bug就由负责功能的开发人员,在release-1.0.0分支与develop分支之前进行拉取提交,修复bug。如果没有bug,就可以发布一个Release 预发布版。
测试没有问题将release-1.0.0推送到远端服务器。
在远端release-1.0.0就能看到新增的功能。
2、请求合并 release——>master
在release-1.0.0分支下测试完毕没有bug以后,通过Pull request 将Release分支合并到master分支。
注意:是由release-1.0.0合并到master分支
此时的master分支下,就有了最新提交的代码。
五、发布正式版本
1、本地切换到master分支,拉取最新代码。
2、基于master创建标签 Tag
这是一个里程碑版本,代表着可以发布上线给客户使用的版本。
TortoiseGit——>创建标签——"1.0.0-RELEASE"
创建标签完成后,需要推送到远端仓库。推送时需要把Tag标签一并推送到远端。
远端查看 发行版
在Branch 选择Tag,选择1.0.0-RELEASE
点击以后可以看到 项目的提交次数、分支数、版本数量、贡献者数量等。然后点击1 release
就可以看到版本图了
六、修复正式版bug
1、创建问题
此时某个用户在使用1.0.0-RELEASE时发现登陆功能的"记住我"功能无效,向我们提出修复请求。
在Github可以新建一个Issuse(问题)
创建完成可以得到一个编号#5
2、创建热修复分支 hotfix
文件夹右击TotroiseGit——>切换/检出——选择标签——>在1.0.0-RELEASE的基础上创建热修复分支——分支名:hotfix_0005
3、修复BUG
BUG修复完成以后,推送hotfix到远端。
4、合并请求 Pull Request
hotfix 修复bug完成,经过测试确实没有问题后,可以合并到master。
发起一个 由hotfix合并到master 的pull request
切换回master分支,拉取最新代码
七、发布BUG修复后的正式版
1、基于master分支创建新的Tag:1.0.1-RELEASE
2、推送到远端:别忘记勾选包括标签
此时就有两个Tag和两个 RELEASE
八、删除分支
在本地将除了master、develop以外属于开发者自己(不要删别人的分支)的分支全部删除。下一次新建功能时重新创建拉取。
删除分支操作略
到此GitFlow工作流全部完成