git分支管理
分支含义
**
master
**
用于保存官方发布历史,与线上的版本一致。要确保任何时候从master分支都可以拿到处于可发布状态的代码。
一个工程只有一个master分支,创建Git工程后自动创建,生命周期为永久。
跟master分支打交道的分支有dev分支、hotfix分支:
测试通过后,需要将dev分支合并到master分支。
线上出现bug时需要从master分支迁出代码到hotfix分支上进行晋级修复。
线上紧急修复后,需要将hotfix分支合并回master分支。
发布成功后,需要在master分支上打Tag(记录里程碑),标记官方发布的版本号。
版本号的命名规则
命名规则:vx.y.z[.h]
x:大版本号,有产品架构升级发布时升位。
y:中版本号,一般功能迭代发布时升位。
z:小版本号,增加新功能点或功能优化改进时升位。有迭代计划内hotfix时升位。
h:小版本号,迭代计划外的hotfix时升位。
dev
是开发集成的分支,所有开发完成的代码提交到此分支。功能累积到一定程度或者周期性发布需要提测时,从此分支迁出代码到release分支,进行测试。要确保任何时候都可以从dev分支拿到最新开发进展的代码。
一个工程只有一个dev分支,最初创建,生命周期为永久。
跟dev分支打交道的分支有release分支、hotfix分支、feature分支:
功能开发开始时,从dev分支迁出代码到feature分支进行开发。
提测时,dev分支迁出代码到release分支(将需要测试的feature合并到该release上进行测试)。
release分支测试通过后,将release分支合并回dev分支。
线上紧急修复后,将hotfix分支合并到dev分支。
release
是测试分支,用于测试某个待发布的版本。从dev分支迁出代码到release分支,冻结代码(除了修改bug),进行测试。测试通过后合并到dev分支,正式发布。
release分支整合同一个迭代多个feature进行提测,保证每个迭代统一回归测试。
一个工程不建议有多个release分支,每个release分支建议在上一迭代稳定后,基于稳定的dev分支开出。
release分支的生命周期不是永久的,最初起源于dev分支,最终归于dev分支。
提测时,创建一个release分支;测试通过、合并到dev分支后,删除该分支(可暂留若干个迭代)。
跟release分支打交道的分支有dev分支、feature分支、hotfix分支:
提测时,从dev分支迁出代码、创建一个release分支,然后把待测试的feature分支合并到当前release分支上。
相同迭代下有新的feature提测,在有当前迭代release分支时不再开新的release分,将该feature合并到需要提测的release分支上一并测试。
release分支测试通过后,将release分支合并到dev分支,同时将dev分支合并回master分支。
测试、开发修改bug,都是在release分支上进行。在devops上发布时推荐构建release分支,版本号在devops上会更清晰。
release分支命名规则:release/迭代x.y.z
feature
是各个功能的开发分支,开发完成后合并到dev分支。
feature分支使得多个人可以并行开发,互不干扰。
一个工程有多个feature分支,一个feature一个分支。
feature分支的生命周期不是永久的,最初起源于dev分支,最终归于release分支。
开始开发一个新功能时,由开发自己创建一个feature分支;功能开发完成、合并到release分支后&#x