GIT分支管理模型

link: git-branching-model

主分支(Main branches)

项目两个常驻分支:

master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活,只做代码合并、以及打标记(git tag)。 理论上,每当对 master 分支有一个合并提交操作,我们就可以使用 Git 钩子脚本来自动构建并且发布软件到生产服务器。

develop开发分支(非锁定),平时干活的地方。每当发版时,需要被合并到 master。对于简单的项目而言,这样的分支模型已经够用了。

辅助性分支(Supporting branches)

除了常驻分支,通常大的特性开发或生产缺陷修复还建议创建相应的临时分支。因为:

  1. 在分支上开发可以让你随意尝试,进退自如,比如碰上无法正常工作的特性或补丁,可以先搁在那边,直到有时间仔细核查修复为止。
  2. 团队中如果有代码审查流程,独立的分支还可以留给审查者抽空审查的时间和改进代码的余地,并将是否合并、是否发布的权利留给审查者,为代码质量设一道门槛。

每一类分支都有一个特定目的,如何命名每一类分支?建议用相关的主题关键字进行命名,并且建议将分支名称分置于不同命名空间(前缀)下,例如:
|分支|来源分支|合并分支|锁定|说明|
|----|------|-------|---|---|
|feature-*|develop|develop| NO |特性分支,为了开发某种特定功能而建。|
|release-*|develop|develop,master| YES |预发布分支,为了新版本的发布做准备,一般命名为release-<版本号>
|hotfix-*|master|develop,master| NO |补丁分支,为了修复生产缺陷而建,一般命名为 hotfix-<issue 编号>

与主分支不同,这些辅助性分支总是有一个有限的生命期,因为他们在被合并到主分支之后,就会被移除掉。

GIT分支管理模型的更多相关文章

  1. Git 分支管理策略汇总

    原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的 ...

  2. [转载]理解 Git 分支管理最佳实践

    原文 理解 Git 分支管理最佳实践 Git 分支有哪些 在进行分支管理讲解之前,我们先来对分支进行一个简单的分类,并明确每一类分支的用途. 分支分类 根据生命周期区分 主分支:master,deve ...

  3. 02: git分支管理

    目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...

  4. Git-Runoob:Git 分支管理

    ylbtech-Git-Runoob:Git 分支管理 1.返回顶部 1. Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同 ...

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

    A successful Git branching model https://nvie.com/posts/a-successful-git-branching-model/ Git工程开发实践( ...

  6. 【第七篇】- Git 分支管理之Spring Cloud直播商城 b2b2c电子商务技术总结

    ​ Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作. 有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 ...

  7. Git 分支管理是一门艺术

    转载: Git 分支管理是一门艺术 1 要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码. 2 "辅助分 ...

  8. Git 分支管理详解

    大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...

  9. Git分支管理[三]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git分支管理命令 git branch #创建分支 git branch -v # ...

随机推荐

  1. Python3

    1.上节内容回顾 递归: 明确的结束条件 问题规模每递归一次都应该比上一次的问题规模有所减少 效率低 高阶函数 文件: rb.wb.ab 一般用在不同系统之间传数据,和传视频流的时候用到,一般以这种形 ...

  2. 安装oracle ebs 出现问题 atleast 55M of disk space

    出现这个问题 可以进行如下尝试: 1.登陆用户是否具有管理员权限,可以右击exe用管理员登陆. 2.安装电脑是否有安装mcafee,可以禁用后运行. 3.看下C:\Documents and Sett ...

  3. Serializable接口和transient关键字

    1. 什么是Serializable接口? 当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法),表示该类可以被序列化. 序列化的目的是将一个实现了Serializable ...

  4. 你不知道的函数节流,提高你的JS性能!

    浏览器的DOM计算处理非常耗费CPU时间,霸占内存,这对我们的开发来说是非常不友好的,,比如IE浏览器的onresize事件就可能在用户稍微拖动一下窗口时计算上千次,甚至更高频率直接让浏览器崩溃... ...

  5. 什么是遗传方差(Genetic variance)、加性遗传方差(Additive genetic variance)、显性遗传方差(Dominance genetic variance)、上位遗传方差(Epistatic genetic variance)

    遗传方差:遗传方差又称表型方差(phenotypic variance),通常结合基因型方差(genotype variance)和环境方差(environmental variance).遗传方差主 ...

  6. MAGENTA: Meta-Analysis Gene-set Enrichment of variaNT Associations

    MAGENTA是一款计算工具,利用全基因组遗传数据,计算预先设定的涉及生物过程或者功能性基因集在遗传相关性的富集程度.开发的目的是分析基因型不是现成的数据集,比如大型的全基因组关联荟萃分析.在以下两种 ...

  7. DOS基本命令及其详解

    指令格式:命令 选项 参数命令:要求计算机做某操作,可以是系统中的某个可执行程序,也可以是内存中的某函数.接口.别名等.如果是可执行程序,默认要带路径执行,除非该路径配置在环境变量path中.选项:表 ...

  8. 在子线程中new Handler报错--Can't create handler inside thread that has not called Looper.prepare()

    在子线程中new一个Handler为什么会报以下错误? java.lang.RuntimeException:  Can't create handler inside thread that has ...

  9. JavaWeb技术(一):JDBC简介

    一.  JDBC简介 1. Java Database Connectivity(JDBC) 使用JDBC可以对数据库进行访问 2. JDBC的核心接口 1)DriverManager 驱动管理器接口 ...

  10. JAVA XML

    为什么要用XML:1各平台之间程序很难直接交流 2各程序之间交换数据 xml定义  可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言. 它可以用来标记数据.定义数据 ...