如果git(icode)不加管理,可能出现枝节蔓生、四处开放的版本库。到处都是分支,完全看不出主干发展的脉络,造成下图的局面:

为了降低合并和版本管理的成本,团队引入一种值得借鉴的管理方式(link

1.存在一条主分支(master)。所有用户可见的正式版本,都从master发布。主分支作为稳定的唯一代码库,不做任何开发使用。

拉取源:无需。

合并目标:无需。

修改:不允许。

生命期:持续。

2.存在一条开发分支(develop)。这个分支维护了当前开发中代码的主线,始终保持代码新于master。持续集成、最新隔夜版本的生成等都是基于这个分支。由于当前版本迭代较快,开发分支只提供拉取,不进行实际开发。

拉取源:master。

合并目标:无需。

修改:不允许。

生命期:持续。

3.临时性多个功能分支(feature)。从develop拉取。开发feature完成,merge回develop。为了降低对其他feature的影响,一般在提测前merge回develop分支。

拉取源:develop。

合并目标:develop。

修改:允许。

生命期:合并后删除。

4.临时性多个预发布(测试)分支(release),用于QA测试。从develop拉取,测试完成merge回master和develop。如果测试期间,有其他版本合并入master,需要同步到release版本,并进行测试。

拉取源:develop。

合并目标:master & develop。

修改:允许。

生命期:合并后删除。

4. 临时性多个bug修复分支(fixbug),用于修复线上问题。从master拉取,修复并测试完成merge回master和develop。如果修复期间,有其他版本合并入master ,需要同步到fixbug版本,并进行测试。

拉取源:master。

合并目标:master,develop。

修改:允许。

生命期:合并后删除。

git(icode)分支及发布管理方式的更多相关文章

  1. git 给分支添加描述 管理分支实用方法

    1.背景 在我们工作中,正常情况我们处在一个迭代中,一个人最多会有几个功能,比较正常的操作我们会给每个大功能创建不同的分支,方便管理. 我们可以非常愉快的进行版本管理,遇到特殊情况我们也可以方便版本退 ...

  2. Git开发分支使用与管理规范

    最稳定的代码放在 master 分支上(相当于 SVN 的 trunk 分支),我们不要直接在 master 分支上提交代码,只能在该分支上进行代码合并操作,例如将其它分支的代码合并到 master ...

  3. Git 以分支的方式同时管理多个项目

    你是否遇到过这样的问题: 你的客户在你们这边做了N个项目,而项目之间又存在着某些业务关联(数据库访问等) 之前你可能是这样处理的,为客户的每个项目创建单独的Git版本 PC项目 手机项目 微信项目 其 ...

  4. 使用git新建分支以及管理分支

    在进行分支相关的操作前, 我们需要保持主分支干净, 所谓的干净就是没有任何改变(所有更改都已经commit 并 push),那么你可以在任何时候从你的主分支创建一个新分支. 为了方便代码管理,我们应该 ...

  5. Git的分支管理

    0.引言 本文参考最后的几篇文章,将git的分支管理整理如下.学习git的分支管理将可以版本进行灵活有效的控制. 1.如何建立与合并分支 1.1分支的新建与合并指令 新建分支 newBranch,并进 ...

  6. Git Flow 分支管理简述

    概述 Git 是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...

  7. git的使用学习(五)git的分支管理

    分支管理 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平 ...

  8. 引入git flow分支管理

    git flow是Vincent Driessen提出了一个分支管理的策略,非常值得借鉴.它可以使得版本库的演进保持简洁,主干清晰,各个分支各司其职.井井有条. 先看下Vincent Driessen ...

  9. git flow分支管理

    阅读目录 两种核心分支 三种临时分支 Git Flow流程示例代码 Git Flow工具 分支命名规范 总结 git flow是Vincent Driessen提出了一个分支管理的策略,非常值得借鉴. ...

随机推荐

  1. 一个包的TcpServer流程

    上次说到对于那种有内容的包 bool TCPServer::on_receive_data(int channel_id, void* data, int len) { packet pkt; { p ...

  2. CRC16校验

    C++中的代码如下:传入字节(byte)数组引用和数组长度 unsigned short CTcpClient::Crc16(const char *pBuf, unsigned short nLen ...

  3. iOS开发之runtime的运用-获取当前网络状态

    之前写过runtime的一些东西,这次通过runtime获取一些苹果官方不想让你拿到的东西,比如,状态栏内部的控件属性.本文将通过runtime带你一步步拿到状态栏中显示网络状态的控件,然后通过监测该 ...

  4. 7件你不知道但可以用CSS做的事

    不管你信不信,CSS和JavaScript开始重叠,就像CSS增加了更多功能一新.在我写“你可能不知道的CSS和JavaScript互相影响的5种方式”一文时,人们对于JavaScript和CSS是如 ...

  5. 评论 “App死亡潮:400万应用僵尸超八成,周期仅10月”

    点这里 原文: App死亡潮:400万应用僵尸超八成,周期仅10月 时间 2015-04-05 22:48:19  和讯科技相似文章 (16)原文  http://tech.hexun.com/201 ...

  6. 深入浅出ES6(十二):代理 Proxies

    作者 Jason Orendorff  github主页  https://github.com/jorendorff 请看这样一段代码: var obj = new Proxy({}, { get: ...

  7. sql server 函数

    1.Fun_Split 分割字符串,形成返回表 CREATE FUNCTION [dbo].[Fun_Split] ( @Items VARCHAR(MAX), @SplitStr VARCHAR(M ...

  8. ***ECharts图表入门和最佳实践

    ECharts数据图表系统? 5分钟上手! [ECharts简介] ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动, ...

  9. POJ 3130 How I Mathematician Wonder What You Are!(半平面交求多边形的核)

    题目链接 题意 : 给你一个多边形,问你该多边形中是否存在一个点使得该点与该多边形任意一点的连线都在多边形之内. 思路 : 与3335一样,不过要注意方向变化一下. #include <stdi ...

  10. ls 知识点

    ls -R 将会以目录的形式列出所有文件,-S 以文件的大小列出所有文件,-t 将会按照修改时间来列出文件,-i 会显示文件的inode