【DevOps研发管理方案】三:代码管理

这篇具有很好参考价值的文章主要介绍了【DevOps研发管理方案】三:代码管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、代码托管

二、Git FLow 工作流程

三、 分支管理

1. 基本要求

2. 版本号

3. 角色划分与权限

4. 分支说明

5. 分支创建规则

6. 分支回收规则


一、代码托管

使用Git/SVN等开源版本控制系统进行代码托管。

二、Git FLow 工作流程

推荐使用Git Flow的模式进行代码分支管理。在使用Git Flow工作流程管理代码时,必须按照以下步骤执行。

说明:

  1. 由开发管理员负责在统一代码仓库里创建空白的仓库,并clone到本地,初始化仓库,并push到远端。
  2. 在统一代码仓库上设置保护分支,把master、develop分支保护起来,只有开发管理员可push。
  3. 功能开发者clone代码到本地,然后初始化仓库。
  4. 然后再开始新建功能分支,进行开发工作。
  5. 新功能开发全部完成或部分完成后,功能开发者把最新代码push到远端同样的新功能分支里,并在统一代码仓库发起Merge request给开发管理员。
  6. 开发管理员review代码,选择合并代码到develop分支,并可选择删除已经合并的新功能分支。
  7. 当开发管理员处理完合并请求后,功能开发者切换到develop分支,直接删除自己的本地分支及远程分支,不要点击完成(Finish Feature),此时开发者pull远端develop分支最新代码即可,可忽视本地的push提醒。
  8. release、hotfix分支和feature分支操作类似。
  9. 不可点击完成新功能、完成发布版本、完成修复补丁,因为这样会导致自动合并代码到master或develop分支。

【DevOps研发管理方案】三:代码管理

 Git Flow 工作流程

三、 分支管理

1. 基本要求

【强制】每一次commit必须有注释,注释内容遵循注释规范。

【建议】任务拆分时,建议合理控制任务粒度,一个新功能任务可一人独立完成,即一个feature新功能分支一人独立完成。

【建议】一次commit只做一件事情,便于后期版本回滚。

【强制】正确为每个项目设置Git提交用到的user.name和user.email信息,以公司邮箱为准,不可随意设置以影响无法正确识别。

【强制】每一个项目根目录下都必须提供readme.md文件,用来说明当前项目的主要功能。

2. 版本号

【强制】版本号(tag)命名规则:主版本号.次版本号.修订号,如2.1.13。

  • 主版本号:当API兼容性变化时,主版本号需要递增;
  • 次版本号:当增加功能,但不影响兼容性,次版本号需要递增;
  • 修订号:当修复bug但不影响兼容性,修订号需要递增;

【强制】版本号仅标记于master分支,用于标识某个可发布/回滚的版本代码。

【强制】对master标记tag意味着该tag能发布到生产环境。

【强制】对master分支代码的每一次更新(合并)必须标记版本号。

【强制】仅管理员对master进行合并和标记版本号。

3. 角色划分与权限

用户有四种角色划分:

  1. 功能开发者:模块中功能的开发人员,拥有浏览、push非主分支、提交Merge request的权限;
  2. 开发管理员:由项目模块开发的小组长(team leader)担当,拥有管理git项目、合并分支和代码的权限,可以进行代码审查;
  3. 发布管理员:由生产环境发布团队指定人员担当,拥有建立和管理Git项目、合并分支和代码、给master打tag版本号等权限;
  4. 测试管理员:由测试团队指定人员担当。

【强制】用户有五种角色权限:Guest、Reporter、Developer、Maintainer、Owner

  1. Guest:可以创建issue、发表评论,不能读写版本库;
  2. Reporter:可以克隆代码,不能提交,【测试管理员】赋予该权限;
  3. Developer:可以克隆代码、开发、提交、push,【功能开发者】赋予该权限;
  4. Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,【开发管理员】、【发布管理员】赋予该权限;
  5. Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员。

注:开发管理员和发布管理员角色相同,但操作的项目范围不同。发布管理员可操作当前项目组下的所有项目。

组和项目有三种访问权限:Private、Internal、Public

  1. Private:只有组成员才能看到
  2. Internal:只要登录的用户就能看到
  3. Public:所有人都能看到

4. 分支说明

每个Git项目固定含有master、develop、feature、release、hotfix分支类型。主分支master和develop是保护分支,只能进行合并请求,均不可直接提交代码。

功能需求或常规Bug修复,从develop拉取feature分支;线上紧急问题修复,从master拉取hotfix分支。

名称

master

release

develop

feature

hotfix

说明

线上稳定版本

待发布分支

当前正在开发的分支

功能分支,每个功能需分别建立自己的子分支

紧急修复分支

命名规范

master

release-xxx

develop

feature-功能名-版本号

hotfix-功能名-版本号

分支命名

master

release-v1.0.0

develop

feature-login-v1.0.0

hotfix-fixorderdetail-v1.0.1

pom文件版本定义

xxx-1.0.0-RELEASE

xxx-1.0.0-RELEASE

xxx-1.0.*-SNAPSHOT

xxx-1.0.*-SNAPSHOT

xxx-1.0.0-RELEASE

合并目标

-

master/develop

master

develop

master/develop

合并操作

-

merge request

merge request

merge request

merge request

创建人

发布管理员

发布管理员

开发管理员

开发者

开发者

生命周期

全过程

版本发布后

全过程

功能开发完成后

紧急修复bug并验证后

  • master

生产环境分支。

  1. 操作权限:仅管理员。
  2. 合并说明:-
  3. 推送说明:-
  • develop

主开发分支,此分支包含:正在测试、等待测试的代码,属于不稳定代码分支。

  1. 操作权限:仅管理员。
  2. 合并说明:-
  3. 推送说明:-
  • feature-*

新功能开发分支。

  1. 操作权限:仅允许对应开发人员操作。
  2. 创建说明:创建自develop。
  3. 合并说明:合并到develop:新功能开发完成,等待测试。
  • release-*

预发布分支。

  1. 操作权限:仅允许对应开发人员操作。
  2. 创建说明:创建自develop。
  3. 合并说明:
    • 合并到develop:预发布环境测试通过,修复代码回归。
    • 合并到master:预发布环境测试通过,发布。
  • hotfix-*

生产环境问题修复分支。

  1. 操作权限:仅允许对应开发人员。
  2. 创建说明:创建自master。
  3. 合并说明:
    • 合并到develop:问题修复完成并测试通过,修复代码回归。
    • 合并到master:问题修复完成并测试通过,发布。 

5. 分支创建规则

👉 新需求加入

如有一个订单管理的新需求需要开发,首先要创建一个 feature-[新功能] 分支,步骤如下:

  1. 基于 develop 创建新的本地分支 feature-[新功能]。
  2. 本地开发、测试。
  3. 需求在 feature-[新功能] 分支开发完毕,准备提测时,要先发送代码合并请求,经开发管理人员代码审核通过后,将代码合并到 develop 分支,等待测试人员测试,并删除该远程分支。
  4. 测试人员在 develop测试,不通过则回到第1步;测试通过后,研发人员再将代码发布到 release 供测试人员测试。
  5. 测试人员在 release 测试,不通过则回到第1步;测试通过后,研发人员再将代码发布到 master 和 develop 分支。
  6. 最后,待本次迭代内的所有特性均完成了测试,那么在 master 上打TAG标记版本号,准备发布新版本。

👉 普通迭代

若有一个订单管理的迭代需求,如果开发工时<1d,直接在 develop 开发,如果开发工时>1d,那就需要创建分支,在分支上开发。开发后的提测上线流程与新需求加入的流程一致。

👉 修复测试环境 Bug

在develop测试出现了Bug,需要新建分支进行修复。修复后的提测上线流程与新需求加入的流程一致。

👉 修复预上线环境 Bug

在 release 测试出现了Bug,则直接由开发者在release分支修复并提交。当测试完成之后,合并 release 分支到 master 和 develop 分支,此时 master 为最新代码,用于上线发布。

👉 紧急修复正式环境 Bug

上线运行一段时候后出现了严重Bug,需要紧急修复的,步骤如下:文章来源地址https://www.toymoban.com/news/detail-433749.html

  1. 基于线上版本的TAG创建新的分支hotfix-[BUG]。
  2. 本地开发、测试。
  3. 修复完毕,推到远程分支。
  4. 将该远程分支发布到测试环境。
  5. 测试不通过,则回到第2步;测试通过,则将 hotfix-[BUG] 代码合并到master 和develop 分支,同时删掉 hotfix-[BUG] 分支,打TAG,准备发布补丁版本。

6. 分支回收规则

  • master分支:长期存在。
  • develop分支:产生于master分支,并长期存在。
  • feature分支合: 合并回develop分支,经测试通过后,删除feature分支,或者feature分支与前期需求不符,直接舍弃。
  • release分支:在release分支上进行充分测试,并修复Bug,合并回develop分支和master分支后,然后删除release分支。
  • hotfix分支: 紧急Bug修复完成后,合并回maste分支,测试验证通过,再合并到develop分支,然后删除hotfix分支。

到了这里,关于【DevOps研发管理方案】三:代码管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 游戏研发项目管理

    基于阶段模式进行游戏新产品研发过程,以及基于这种研发过程使用Leangoo 领歌敏捷工具管理 二、 游戏产品开发流程 通常开发一款新游戏大体上会按照如下流程来进行: 1) 概念阶段 – Concept 主策根据产品创意,确定游戏策划草案,包括游戏的形态、游戏概述、游戏核心玩

    2024年02月08日
    浏览(52)
  • 热管理系统研发服务

    为了适应电动化和智能化的需求,汽车热管理正从传统的发动机冷却和空调系统发展至电池热管理、电机电控热管理系统以及热泵空调系统,以实现对座舱温度、电池温度和动力总成温度的精确控制。由于新增了繁多的、控制精度要求更高的零部件,使得系统内需要冷却的部

    2024年02月09日
    浏览(32)
  • Scrum敏捷研发和项目管理

    Scrum是全球运用最广泛的敏捷管理框架,Leangoo基于Scrum框架提供了一系列的流程和模板,可以帮助敏捷团队快速启动Scrum敏捷开发。  Leangoo完美支持Scrum敏捷框架,它提供了灵活的敏捷模板和极致的协作体验,可以让团队快速上手,快速落地Scrum敏捷开发管理。 建立产品路线图

    2023年04月21日
    浏览(49)
  • WMS仓库管理系统研发规划说明

    1.1 背景概述 aboss WMS东南亚仓库管理系统是一个基于BigSeller系统的使用基础上,加上多仓库的解决思路,解决入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,对批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用,有效控制并

    2024年02月14日
    浏览(66)
  • 工程管理系统软件 自主研发,工程行业适用

      ava版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1、项目进度图表  2、项目信息 施工地图:1、展示当前角色权限下

    2023年04月09日
    浏览(65)
  • 软件研发过程中,项目管理工具应该如何选择?

    本文作者:极狐GitLab 资深解决方案架构师 尹学峰 许多企业依旧在用老旧的方式,如Excel离线表格进行项目管理。表格无法简介的呈现出项目的任务分解、完成进度、任务类别等多种项目管理过程中必备的要求,更无法实现与企业员工的日常即时通信系统的打通。往往导致项

    2024年01月17日
    浏览(65)
  • 软件研发质量管理体系建设白皮书 V1.0 下载

    软件在现代社会中发挥着越来越重要的作用,但软件质量问题也越来越受到人们的关注。尤其是在软件开发的过程中,可能存在的质量问题会导致交付产品质量下降、项目超预算和延迟交付等问题。在这种背景下,建立研发质量管理体系是非常重要的。本白皮书的主要目的是

    2024年02月08日
    浏览(45)
  • 对话 ChatGPT:现象级 AI 应用,将如何阐释「研发效能管理」?

    ChatGPT 已然是 2023 开年至今,互联网上最热的话题没有之一。从去年的 AI 图片生成,到 ChatGPT,再到现在各种基于大模型的应用如雨后春笋般出现……在人们探讨技术无限可能的同时,另一个更深刻的命题也不可回避地浮现出来: AI 似乎证明了自己有推进生产力变革的能力。

    2024年02月15日
    浏览(45)
  • 什么是研发项目管理软件?生命奇点 PowerProject 项目管理平台正式启动,打造大数据领域新标杆

    近日,生命奇点(北京)科技有限公司(以下简称“生命奇点”)与北京奥博思软件公司达成合作,奥博思软件将基于 PowerProject 项目管理系统助力生命奇点实现研发项目的全生命周期管理,提效企业管理效率! 生命奇点目前正处于企业发展的转型期,随着业务的发展与规模

    2024年02月20日
    浏览(80)
  • 项目管理流程文件,招标支撑文件,项目研发,验收等系列支撑文件

    写在前面: 我花了一些时间整理了这些年从事软件行业以来的文档,将它们分类整理后,电脑瞬间变得更加简洁。我整理了数百份软件开发过程中的常用文档,包括项目计划、立项计划、需求分析、概要设计、详细设计、数据库设计、用户操作手册、测试计划、测试分析报告

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包