不足原因:不曾接触此名词,由面试官简单提醒之后,从工作经历中总结出的理解不足,比较片面,也可能是因为经历过的两家公司对分支划分的没有这么细致?
以下是经过学习后的总结,若有不足请指出
GitFlow为分支策略之一,是最早出现的,除此之外,还有GitHubFlow、GitlabFlow等等
GitFlow通常包含的分支有五种:Master分支、Develop分支、Feature分支、Release分支以及Hotfix分支。
Master分支:
1、主干分支,贯穿产品的始终,产品的功能全部实现后 , 最终在对外发布的是master分支
2、master分支中包含可以部署到生产环境的代码
3、理论上不允许直接push提交到master,只允许从其他分支merge合入,例如:hotfix、release分支
Develop分支:
1、从master分支克隆出来
2、平时的主开发分支,包含到下一个relase节点的所有代码
3、理论上不允许直接push提交,只允许从其他分支合入,例如:hotfix、release分支
Feature分支:
1、基于develop分支拉出,用于功能开发
2、功能开发完成后,合入develop分支,不合入master分支
3、feature分支为临时分支,可删除,如若不删,则分支不可更改
Release分支:
1、基于develop分支拉出,待feature分支合入后拉取,用于测试
2、测试中发现bug,则在本分支修改,修改后合入master和develop分支
3、release分支为临时分支,合入master后则删除,若不删除,则不可改动
Hotfix分支:
1、基于master分支拉出,用于紧急修复已发布版本bug的分支
2、修复完成后需要合入develop、master分支,develop和master分支需要打tag
3、hotfix属于临时分支,合入后删除,若不删除,则不可改动
4、所有hotfix分支的修改会进入下一个的版本发布
图片展示如下:
图片来源于网络搜索