规范的git开发模型

介绍一个成功的 Git 分支模型https://www.oschina.net/translate/a-successful-git-branching-model?print 

一个成功的Git分支模型https://www.jianshu.com/p/b357df6794e3

规范的git开发模型_第1张图片

1. 为什么是git?

可以在本地提交,不同步到服务器;
可以在本地创建分支,不同步到服务器;
可以拉取别人的代码,并行开发;

git是分布式的版本控制系统,在使用git的时候,每次代码的提交都不必同步到远程服务器中,开发人员可以在外部网络环境(无法连接内网),甚至离线的情况下进行代码的版本控制,作为非集中式的版本控制系统,开发人员可以在本地创建分支而不同步到服务器上,这一点hi构成文中git分支模型的另一大基础。

2.主分支

*master分支

“准备好进行生产的状态”
每次新的合并通常都表明一个新的版本的发布

master作为git中默认的主分支,git分支开发模型中,master分支的HEAD节点始终处于“准备好进行生产的状态”,即master分支的HEAD节点所指向的版本始终是可以用于生产环境的正式版本。当其他分支的代码版本合并到master分只时(随后打上版本标签),通常意味着一个新的正式版本已经发布。

*develop分支

开发分支,是一个待发布版本。
通常也会不断有新的分支合并进来
达到稳定点的时候,会将dev分支合并到master分支上,并打上tag标签

develop分支作为另一个主分支,其HEAD节点总是指向下一个待发布版本的最新变化。develop分支的版本变更通常来源于辅助分支的合并(稍后介绍),因为develop分支也常被称为“整合分支”。当develop分支达到某一个稳定点可进行新版本的发布的时候,develop分支上的所有变更应该被合并到master分支并打上tag标签。

3.辅助分支

除了master分支和develop分支这两个主分支以外,git分支模型中拥有一些“辅助分支”,在团队开发中对develop分支和master分支进行帮助,例如对新需求的开发,新版本发布前的准备工作以及新版本bug的紧急修复等。和主分支不同的是这些分支的生命周期都是有限的,最终将会被删除。辅助分支有以下三类分支:

        *需求分支(Feature Branch)
        *发布分支(Release Branch)
        *修复分支(Hotfix Branch)

以上三种辅助分支,每一种都有其特定的功能,并遵守其各自严格的规则,例如分支的输入分支、分支的输出(合并)分支等。下文将逐一描述。

1)需求分支(Feature Branch)

规范的git开发模型_第2张图片

分支来源:develop分支
分支去向:  develop分支
分支命名:任意命名,除master,develop,以“release-”开头,以“hotfix-”开头的分支以外。

需求分支通常仅仅存在于开发者的代码仓库中(本地仓库),并不上传到远程分支。

如何创建需求分支

创建需求分支的时候,该分支必须从develop分支得到:

该命令从develop分支创建一个新的分支“feature_branch”,并从当前分支切换到“feature_branch”分支,相当于:

将已完成的需求分支合并到develop分支

已完成的需求分支需要被合并到develop分支,作为待发布版本的需求之一:

规范的git开发模型_第3张图片

2)发布分支

分支来源:develop分支
分支去向:develop分支和master分支

分支命名:以"release-"开头

发布分支用于辅助新版本(生产环境)发布的准备工作,例如小bug的修复,或者版本号的修改等。使用待发布分支的好处是,当从develop分支中创建发布分支以后,develop分支便可以进行新版本之后需求的研发工作,从而既不会影响到最新的研发进度,也不会影响到新版本的发布。

创建发布分支

发布分支以develop分支作为源分支,例如:目前develop分支上的所有需求将作为1.2发布,这时候可以创建一个分支“release-1.2”。此时可以继续在develop分支上进行新需求的研发,而1.2版本的发布工作将由“release-1.2”分支完成:

规范的git开发模型_第4张图片

注:如果在发部分之进行小型bug修改,则需要将提交后的代码合并到develop分支中

完成发布分支

当发布分支完成代码的提交(如果修复过bug,则合并到develop分支)后,需要将发布分支合并到master分支上,并进行tag操作,:如:

规范的git开发模型_第5张图片

ps合并到develop的操作:

完成合并操作之后,删除发布分支:

3)修复分支(Hotfix Branch)

分支来源:master分支
分支去向:develop分支和master分支

分支命名:以“hotfix-”开头

规范的git开发模型_第6张图片

创建修复分支

规范的git开发模型_第7张图片

完成修复分支

不要忘记合并分支到develop分支

删除分支

你可能感兴趣的:(规范的git开发模型)