Git分支管理介绍

分支管理

软件的版本控制以及分支管理贯穿于整个软件产品的生命周期,日常的项目管理对于开发团队能否有节奏且顺利的交付软件也很重要。本分支管理和版本控制规范主要分为3个部分,即分支管理规范、版本号规范、需求与代码关联。其中,将阐述不同的分支管理模型,以及它们的优缺点和使用的场景;描述版本号控制方式——语义化版本;以及将需求与代码管理的必要性等。
分支管理规范

目前比较流行的分支管理模型有三个,即GitFlow、GitLabFlow、GitHubFlow。下面将介绍这三种分支模型的原理,使用场景和优缺点等。

GitFlow

GitFlow是最早诞生并得到广泛应用的一种工作流程。

该模型中存在两种长期分支:master和develop。master中存放对外发布的版本,只有稳定的发布版本才会合并到master中。develop用于日常开发,存放最新的开发版本。

也存在三种临时分支:feature,hotfix,release。

feature分支是为了开发某个特定功能,从develop分支中切出,开发完成后合并到develop分支中。
hotfix分支是修复发布后发现的Bug的分支,从master分支中切出,修补完成后再合并到master和develop分支。
release分支指发布稳定版本前使用的预发布分支,从develop分支中切出,预发布完成后,合并到develop和master分支中。

优点:

feature分支使开发代码隔离,可以独立的完成开发、构建、测试
feature分支开发周期长于release时,可避免未完成的feature进入生产环境

缺点:

无法支持持续发布。
过于复杂的分支管理,加重了开发者的负担,使开发者不能专注开发。

GitHubFlow

GitHubFlow分支模型只存在一个master主分支,日常开发都合并至master,永远保持其为最新的代码且随时可发布的。

在需要添加或修改代码时, 基于master创建分支,提交修改。
创建Pull Request,所有人讨论和审查你的代码。
然后部署到生产环境中进行验证。
待验证通过后合并到master分支中。

这个分支模型的优势在于简洁易理解,将master作为核心的分支,代码更新持续集成至master上。根据目前收集到的反应来看,得到了更多的好评,认为GitHubFlow分支模型更加轻便快捷。

GitLabFlow

GitLabFlow是GitFlow和GitHubFlow的结合,它吸取了两者的优点,既有适应不同开发环境的弹性,又有单一主分支的简单和便利。

该模型采取上游优先的原则,即只存在一个master主分支,它是所以分支的上游。只有上游分支采纳的变动才能应用到其他分支。

对于持续发布的项目,建议在master之外再建立对应的环境分支,如预生产环境pre-production,生产环境production。

对于版本发布的项目,建议基于master创建稳定版本对应的分支,如stable-1,stable-2。

分支命名规约
前缀 含义
master 主分支,可用的、稳定的、可直接发布的版本
develop 开发主分支,最新的代码分支
feature-** 功能开发分支
bugfix-** 未发布bug修复分支
release-** 预发布分支
hotfix-** 已发布bug修复分支
提交命名规约

除了分支的名称需要规范,提交的命名也同样如此。

格式为:[操作类型]操作对象名称,如[ADD]readme,代表增加了readme描述文件。

常见的操作类型有:

[IML] 实现正在开发的功能

[UPDATE] 更新或改善已经实现的功能

[FIX] 修复BUG

[REF] 重构一个功能,对功能重写

[ADD] 添加实现新功能

[DEL] 删除不需要的文件

版本号规范

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

1.主版本号:当你做了不兼容的 API 修改。

2.次版本号:当你做了向下兼容的功能性新增。

3.修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

原文地址:https://www.cnblogs.com/lori/p/12246486.html

时间: 2024-08-04 17:45:27

Git分支管理介绍的相关文章

git分支管理与冲突解决(转载)

Git 分支管理和冲突解决 原文:http://www.cnblogs.com/mengdd/p/3585038.html 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. 当前检出分支的前面会有星号. git branch newname 在当前检出分支上新建分支,名叫newname. git checkout newname 检出分支,即切换到名叫newname的分支. git checkout –b newname master 这个命令将上面两个命令合并:在

Git分支管理——创建、合并、删除分支

前言: 几乎所有的版本控制都以某种形式支持分支.使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. Git的分支模型成称为它的"必杀技特性",也正因为这一特性,使得Git从众多版本控制系统中脱颖而出.Git处理分支的方式是难以置信的轻量,创建新的分支这一操作是秒级完成的,并且在不同分支之间的切换操作也是一样便捷. Git的分支,其实本质上仅仅是指向提交对象的可变指针.Git的默认分支是master.在多次提交操作之后,其实我们已经有一个指向最后那个提交对象的mast

[廖雪峰] Git 分支管理策略

通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制 禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下 --no-ff 方式的 git merge: 首先,仍然创建并切换 dev 分支: $ git checkout -b dev Switched to a new branch 'dev' 修改 readme.txt

GIt分支管理策略

大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0.所有软件请到这里下载:http://msysgit.github.io/. 1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对

[转]Git分支管理策略

如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件,Git有很多优点.其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便.有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用. 但是,太方便了也会产生副作用.如果你不加注意,很可能

分支管理介绍

分支管理介绍 先说说什么是branch. branch [br?nt?] n. 分支; 树枝; 部门,分科; 支流; vi. 分支形成; 分支扩张; [计] 下分支的指令; vt. 使分支; 使分叉; trunk [tr??k] n. 树干; 躯干; 象鼻; 汽车车尾的行李箱; merge [m?:rd?] vt.融入; (使)混合; 相融; 渐渐消失在某物中; 1 branch [br?nt?] n. 分支; 树枝; 部门,分科; 支流; vi. 分支形成; 分支扩张; [计] 下分支的指令;

Github操作与git分支管理

通过今天学习的web新知识和复习Sublime Text的基础知识,让我收获颇多,疑惑也多.尤其是在做用 git 和gitHub来管理自己的代码的题目内容时候遇到了许多的疑问,首先在注册用户时都不太懂,在老师提示和指导下才慢慢理解和完成题目. 了解到git分支管理,感觉这个程序可以给我们带来非常多的便利和快捷.使用的标签也没有很复杂,git程序的操作并不需要网络,而应用到的软件才需要,在团队开发中,遵循一个合理.清晰的开发使用流程是很重要的,不然每人乱写项目会变得难以协调和维护.所以将一个项目文

Git工程开发实践(四)——Git分支管理策略

Git工程开发实践(四)--Git分支管理策略 一.Git版本管理的挑战 Git是非常优秀的版本管理工具,但面对版本管理依然有非常大得挑战.工程开发中,开发者彼此的代码协作必然带来很多问题和挑战:A.如何开始一个Feature开发,而不影响其它Feature?B.由于很容易创建新分支,分支多了如何管理,时间久了,如何知道每个分支是干什么的?C.哪些分支已经合并回了主干?D.如何进行Release的管理?开始一个Release的时候如何冻结Feature, 如何在Prepare Release的时

Git分支管理实战

Git分支管理实战: 使用了Git之后,Git确实比TFS 好用,首先它很轻巧,分支之间切换基本在秒级,分支创建也很方便,但由于方便快捷,最近我们一直在因为分支管理混乱而陷入无穷的痛苦之中, 在此痛定思痛,觉得借鉴网上一个好的方案来管理分支. 一.主分支: 实际开发中,主要存在两条主分支,Master和Develop 分支,这两个分支的生命周期是整个项目周期. 他们有如下特点: 1.Master和develop分支自创建之后都不会删除,会随着项目的增长不断往里面添代码. 2.Master分支是G