关于Git的一些分支管理规范。。。

一、分支与角色说明

Git 分支类型

master 分支(主分支) 稳定版本

develop 分支(开发分支) 最新版本

release 分支(发布分支) 发布新版本

hotfix 分支(热修复分支) 修复线上Bug

feature 分支(特性分支) 实现新特性

Gitlab 角色与项目角色对应关系

Owner(拥有者) Git 管理员

Master(管理员) 开发主管

Developer(开发者) 开发人员

Reporter(报告者) 测试人员

Guest(观察者) 其他人员

二、分支简明使用流程

1、每开发一个新功能,创建一个 feature 分支,多人在此分支上开发;

2、提测时,将 master 分支和需要提测的分支汇总到一个 release 分支,发布测试环境;

3、发现bug时,在feature分支上debug后,再次回到2;

4、发布生产环境后,将 release 分支合并到 master 分支,删除release分支;

 

三、创建新项目(master分支)

开发主管提交代码初始版本到master 分支,并推送至Gitlab系统;

开发主管在Gitlab 系统中设置master 分支为Protectd 分支(保护分支);

Protected 分支不允许Developer 角色推送代码,但Master 角色可以推送代码;

四、进行项目开发(develop分支)

开发主管在master 分支上创建develop 分支(开发分支),并推送至Gitlab系统;

master 分支与develop 分支一样,有且仅有一个;

对于非并行项目可以使用develop分支开发方式,对于多人并行开发项目,使用feature分支开发方式,但develop和feature开发方式不应同时使用;

五、开发新特性(feature分支)

每个新需求或新的研究创建一个feature 分支;

命名规范:

f-分支创建日期-新特性关键字,例如:f-20150508-满立减;

推荐使用feature 分支,但feature 分支的生命周期不能跨一次迭代;

六、发布测试环境(release分支)

开发负责人需完成以下任务:

1. 确认要发布的feature 分支上的功能是否开发完毕并提交;

2. 创建release 分支(发布分支),将所有要发布的分支逐个合并到release分支,有如下情况:

①.feature分支(可能有多个)

②.master分支(期间可能有其他release版本更新到了master)

3. 命名规则:r-分支创建日期-新特性和待发布版本号,例如:r-201505081712-买立减v1.0.0,版本可根据需要添加;

4. 删除本次发布的所有feature分支;

5. 发布到测试环境,通知测试;

七、修复待发布版本中的Bug(feature分支)

如果发现bug,开发人员在feature 分支上修复测试人员提交给自己的bug,修复完成后,由负责人再次创建 release 分支,发布测试环境。

八、发布正式环境

开发负责人需完成以下任务:

1. 根据修复后的release分支再次将master合并,打包发布生产环境;

2. 确认发布成功,并线上验收通过后,将release分支合并到master分支;

3. 在master分支上创建标签,命名规则:tag-日期-新特性和版本号,例如:tag-201505081712-买立减v1.0.0,版本可根据需要添加,作为发版里程碑标记;

4. 删除对应release 分支;

九、修复线上Bug(hotfix分支)

线上的不同版本出现了bug怎么办?开发负责人需完成以下任务:

1. 从master 分支某个tag 上创建一个hotfix 分支(热修复分支),一般是最新的tag应该和当前生产环境对应;

命名规则:h-分支创建日期-bug名称和待发布版本号,例如:h-201705081614-购物车点击没反应v1.0.1;

2. 开发人员完成Bug 修复,提交hotfix分支到测试环境验收通过;

3. 再次发布正式环境流程;

4. 将hotfix 分支合并到master分支;

5. 在master分支上创建标签,命名规则:tag-日期-新特性和版本号,例如:tag-201505081712-买立减v1.0.0,版本可根据需要添加,作为发版里程碑标记;

6. 删除hotfix 分支;

十、Git 的特别注意事项

由于 git 分支是基于指针的概念,所以分支速度非常快,当多个分支时,实际指针指向的是同一个文件,当文件被修改时,使用的是暂存区保存修改,此时并未提交到相应分支。

所以切换分支的时候,暂存区只有一个,所以切换分支之前,一定要将所有修改commit到当前分支,否则会在其他分支看到修改的内容,引起误解。

以上规范仅供参考,具体实践请依据团队具体情况自行调整。。。

Git分支管理规范的更多相关文章

  1. 团队项目的Git分支管理规范

    原文地址: http://blog.jboost.cn/2019/06/17/git-branch.html 许多公司的开发团队都采用Git来做代码版本控制.如何有效地协同开发人员之间,以及开发.测试 ...

  2. 【转】团队项目的Git分支管理规范

    原文地址: http://blog.jboost.cn/git-branch.html 分支管理 创建项目时(一般是服务型项目,工具型或辅助型项目可以简单一些),会针对不同环境创建三个常设分支: de ...

  3. git 分支管理规范

    保证master分支永远处于可部署的状态.禁止自接提交代码到master分支 开发分支基于master分支创建,命名规范如下: 如果是功能需求,分支命名为feature/xxx,xxx要具有描述性 如 ...

  4. 您必须知道的 Git 分支开发规范

    Git 是目前最流行的源代码管理工具. 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 分支管理 分支命名 master 分支 master 为主分 ...

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

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

  6. git学习------>Git 分支管理最佳实践

    ps:本文转载于 : https://www.ibm.com/developerworks/cn/java/j-lo-git-mange/index.html Git 是目前最流行的源代码管理工具.大 ...

  7. Git 分支开发规范

    您必须知道的 Git 分支开发规范 Git 是目前最流行的源代码管理工具. 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 分支管理 分支命名 ma ...

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

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

  9. Git 分支管理策略汇总

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

随机推荐

  1. 从换脸到换姿势,AI 在图像处理的道路上越走越魔幻

    从换脸到换姿势,AI 在图像处理的道路上越走越魔幻 https://mp.weixin.qq.com/s/VFq3BWLpzyKZ3sqVWf1HKA [导读]加州大学伯克利分校的研究人员,近日在著名 ...

  2. 「Android」adb调试源码(针对dumpsys SurfceFlinger、trace.txt获取)

    首先对ADB作简单的阐述,接下来对adb shell dumpsys SurfaceFlinger服务的dump信息的查看.以及ANR问题如何获取trace文件并简单分析. -×*********** ...

  3. Cas 服务器 使用HTTP协议对外服务

    在上篇博文<Cas 服务器 下载.编译及部署>Cas启动后默认支持HTTPS连接,如果要使用使用HTTP连接访问,则会收到以下信息: 注:本文是将Cas服务器运行在Http协议模式下,非设 ...

  4. [20190305]删除审计登录信息不适合使用logrotate.txt

    [20190305]删除审计登录信息不适合使用logrotate.txt --//生产系统数据库sys用户登录会在/u01/app/oracle/admin/${ORACLE_SID}/adump/目 ...

  5. LINQ的求和 平均 最大 最小 分组 计数 等等

    1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By按Categ ...

  6. DAC连接

    专用管理员连接是一种特殊的SQL Server服务器诊断性质的连接,用于在正常或者说标准连接形式无法连接SQL Server服务器的情况下连接到服务器进行服务器性能或者错误诊断.DAC同样支持安全加密 ...

  7. C#中的委托和事件 - Part.1

    注意:文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式 ...

  8. 安装Jenkins getting started卡住

    前言 jenkins版本:2.32.3 操作系统:windows 卡住信息 如果在安装jenkins时卡在getting startted的界面,如下所示 解决方法 1.打开 运行  输入 servi ...

  9. Python面试题(二)【转】

    转载出处http://www.cnblogs.com/goodhacker/p/3387027.html 1.python中类方法.类实例方法.静态方法有何区别? 区别: 类方法和静态方法都可以被类和 ...

  10. Vmware ESXi日志文件存放目录地址

    有时候我们需要查看虚拟服务端突然宕机的原因,就需要来查看这些日志 ESXi 通过使用 syslog 功能,在日志文件中记录主机活动. 组件 位置 用途 VMkernel /var/log/vmkern ...