一、 什么是工作流
因为项目开发中,多人协作,分支很多,虽然各自在分支上互不干扰,但是我们总归需要把分支合并到一起,而且真实项目中涉及到很多问题,例如版本迭代,版本发布,bug 修复等,为了更好的管理代码,需要制定一个工作流程,这就是我们说的工作流,也有人叫它分支管理策略。
“工作流程"在英语里,叫做"workflow"或者"flow”,原意是水流,比喻项目像水流那样,顺畅、自然地向前流动,不会发生冲击、对撞、甚至漩涡。
二、GitFlow工作流说明
Gitflow 工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。
剩下要说明的问题围绕着这2个分支的区别展开。
三、分支种类
主干分支 master
主要负责管理正在运行的生产环境代码。 永远保持与正在运行的生产环境 完全一致。
热修复分支 hotfix
主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修 理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
开发分支 develop
主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
准生产分支(预发布分支) release
较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集 成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后 可以视情况删除。
功能分支 feature
为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支 中独立出来。 开发完成后会合并到开发分支。
四、工作流实战演练
第1步: 经理 创建开发分支
使用 经理 用户,在本地仓库中新创建一个 develop 分支
项目右键 → Git → Repository → Branches
点击 New Branch 创建分支
框中输入新分支名:develop , Checkout branch 勾选后,会马上切换到新创建的这个分支
右下角可查看到当前所在分支: develop
第2步: 经理 develop分支止开发新功能
第3步: 经理 提交到本地库并推送到远程develop分支
在码云上切换develop分支查看
第4步: 总监 拉取远程库develop分支代码到本地develop分支
总监先在本地创建好develop分支
总监再进行远程库develop分支代码到本地develop分支
第五步:总监切换回主分支master(本地库)
项目右键 → Git → Repository → Branches
如下已经切换成功:
第6步: 总监 将本地develop合并到mater分支上
项目右键 → Git → Repository → Merge Changes…
合并结果:
第7步: 总监 将合并后的master推送到远程库master
项目右键 → Git → Repository → push