大家好,我是前端西瓜哥。今天来聊聊 git flow 是什么?
git flow 是一种 git 工作流,是一个值得借鉴的分支管理测试。
下面是经典的 git flow 的流程图。
git flow 下有两个 永久 的分支:master 和 develop。
Master,生产分支。是仓库的主分支,要求代码非常稳定。通常作为生产环境部署用的代码版本,比如我们会在 master 的最新 commit 下打一个 tag,自动化工具会自动帮我们构建部署到生产环境下。
Develop,开发分支。基于 Master 分支创建。日常开发的新功能代码会合到这个分支下。当然这个分支也要求要比较稳定,其他同事在将他们的新功能代码合并到 develop 下时,是需要进行代码 review 的。
然后其他分支都是临时分支。
Feature,特性分支。这是一系列的分支,通常以 feature
或 feat
开头。
比如在一个迭代周期中,同事 A 需要开发评论功能,于是他创建了一个 feature-comment
分支;同事 B 要开发注销账号功能,也创建了个 feature-logoff
分支。在开发得差不多时,就可以将分支合到 develop 分支上,当然前提是通过 review。
Release,预发分支。该分支基于 develop 分支创建,一般会根据版本起名,比如 release-0.3.1
。在该版本下的新功能完成并测试通过后,会合并到 master 和 develop。
Hotfix,热修复分支。hotfix-
打头命名的分支,从 master 拉出来,用于修复 master 对应的线上 bug。
git flow 适合需要 维护多个版本 的场景,不同的版本用不同的 release 分支来维护。
但这种方式以及不合适目前的 持续交付 的场景。现在开发者不会花太多精力去维护旧版本。如果旧版本出了问题,不会在所有的版本都修复一遍,这个代价太大,而是在最新版本上修复,然后对旧版本的可能就弹窗强制更新。这时候可以考虑使用 github flow 或 gitlab flow。