Git---企业级开发模型

这篇具有很好参考价值的文章主要介绍了Git---企业级开发模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

拓展

我们知道,一个软件从零开始到最终交付,大概包括一下几个阶段 : 规划、编码、构建、测试、发布、部署和维护.

最初程序比较简单,工作量也不大.程序猿一个人可以完成所有阶段的工作.但随着软件产业的日益发展壮大,软件的规模也在逐渐变得庞大.软件的复杂度不断攀升,一个人已经hold不住了,就开始出现了精细化分工.如下图所示 :
Git---企业级开发模型,Git的原理和使用,git
但在传统的IT组织下,开发团队(Dev)和运维团队(Ops)之间的诉求不同 :

  • 开发团队(尤其是敏捷团队)追求变化
  • 运维团队稳定

双方往往存在利益的冲突.比如,精益和敏捷的团队把持续交付作为目标,而运维团队则为了线上的稳定而强调变更控制.部门墙由此建立起来,这当然不利于IT价值的最大化.

为了弥补开发和运维之间的鸿沟,需要在文化、工具和实践方面的系列改革—DevOps正式登上舞台.

DevOps(Development和Operations的组合词)是一种重视"软件开发人员(Dev)"和"IT运维技术人员(Ops)"之间沟通合作的文化、运动或惯例.通过自动化"软件交付"和"架构变更"的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠.在DevOps的软件开发过程包含计划讲了这么多,这个故事到底和Git有什么关系呢?

举一个很简单的例子就能说明这个问题.一个软件的迭代,在我们开发人员看来,说白了就是对代码进行迭代,那么就需要对代码进行管理.如何管理我们的代码呢,那不就是Git(分布式版本控制系统)!!! 所以Git对于我们开发人员来说其重要性就不言而喻了!!!


正文开始!!!

一、系统开发环境

言归正传,对于开发人员来说,在系统开发过程中最常用的几个环境必须要了解一下 :

  1. 开发环境 : 开发环境是程序猿们专门用于日常开发的服务器.为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境.
  2. 测试环境 : 一个程序在测试环境工作不正常,那么肯定是不能把它发布到生产机上.该环境是开发环境到生产环境的过渡环境.
  3. 预发布环境 : 该环境是为避免因测试环境和线上环境的差异等带来的缺陷漏测而设立的一套环境.其配置等基本和生产环境一致,目的是能让我们发布正式环境时更有把握!所以预发布环境是你的产品质量的最后一道防线,因为下一步你的项目就要上线了.要注意预发布环境服务器不在线上集成服务器范围之内,为单独的一些机器.
  4. 生产环境 : 是指正式提供对外服务的线上环境,例如我们目前在移动端或PC端能访问到的APP都是生产环境.
    Git---企业级开发模型,Git的原理和使用,git
    对于规模稍微大点的公司来说,可不止这几个环境,比如项目正式上线前还存在仿真/灰度环境,再比如还存在多套测试环境,以满足不同版本上线前测试的需要.

一个项目的开始从设计开始,而一个项目的成功则从测试开始.一套良好的测试体系可以将系统中绝大部分的致命Bug在系统上线之前解决.测试系统的完善和成熟也是衡量一个软件企业整体水平的重要指标之一,测试往往被忽略,因为他对可以的隐性、对软件开发企业不产生直接的效益,但是它确是软件质量的最终保障,乃至项目能否成功的重要因素!

二、Git分支设计规范

分支 名称 适用环境
master 主分支 生产环境
release 预发布版本 预发布/测试环境
develop 开发分支 开发环境
feature 需求开发分支 本地
hotfix 紧急修复分支 本地

注 : 以上表格中的分支和环境的搭配仅是常用的一种,可视情况而定不同的策略.

master分支

  • master为主分支,该分支为只读且唯一分支.用于部署到正式发布环境,一般由合并release分支得到.
  • 主分支作为稳定的唯一代码库,任何情况下不允许直接在master分支上修改代码.
  • 产品的功能全部实现后,最终在master分支对外发布,另外所有在master分支的推送应该打标签(tag)做记录,方便追溯.
  • master分支不可删除.

release分支

  • release为预发布分支,基于本次上线所有的feature分支合并到develop分支之后,基于develop分支创建.可以部署到测试灬预发布集群.
  • 命名以release/开头,建议的命名规则 : release/version_publishtime.
  • release分支主要用于提交给测试人员进行功能测试.发布提测阶段,会以release分支代码为基准进行提测.
  • 如果在release分支测试出问题,需要回归验证develop分支查看是否存在此问题.
  • release分支属于临时分支,产品上线后可选删除.

develop分支

  • develop为开发分支,基于master分支创建的只读且唯一分支,始终保持最新完成以及Bug修复后的代码.可部署到开发环境对应集群.
  • 可根据需求大小程度确定是由feature分支合并,还是直接在上面开发(非常不建议).

feature分支

  • feature分支通常为新功能或新特性开发分支,以develop分支为基础创建feature分支.
  • 命名以feature/开头,建议命名规则 : feature/user_createtime_feature.
  • 新特性或新功能开发完成后,开发人员需合到develop分支.
  • 一旦该需求发布上线,便将其删除.

hotfix分支

  • hotfix分支为线上Bug修复分支或补丁分支,主要用于对线上的版本进行Bug修复.当线上出现紧急问题需要马上修复时,需要基于master分支创建hotfix分支.
  • 命名以hotfix/开头,建议的命名规则 : hotfix/user_createtime_hotfix.
  • 当问题修复完成后,需要合并到master分支和develop分支并推送远程.一旦修复上线,便将其删除.

⼀张图总结:
Git---企业级开发模型,Git的原理和使用,git
其实,以上是企业级常用的一种Git分支设计规范 : Git Flow 模型.但要说的是,该模型并不是适用于所有的团队、所有的环境和所有的文化.如果你才用了持续交付,你会想要一些能够尽可能简化交付过程的东西.有些人喜欢基于主干的开发模式,喜欢使用特性标志.然而,从测试的角度来看,这些反而会把他吓一跳.

关键在于站在你团队或项目的角度思考 : 这种分支模型可以帮助你们解决那些问题?这种模式为哪种开发提供更好的支持?你们想要鼓励这种行为吗?你选择的分支模型最终都是为了让人们更容易地进行软件协作开发.因此,分支模型需要考虑到使用者的需求,而不是盲目听信某些所谓的"成功的分支模型".

所以对于不同公司,规范是会有些许差异,但万变不离其宗,是为了效率和稳定.

三、企业级项目管理实战

准备工作

DevOps研发平台

Gitee企业版免费

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
企业名称可随意填写⼀个测试名称,只要能通过即可。注意,多⼈协作开发,需要将多⼈账号拉入一个企业下才行。

创建项目

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git

Git---企业级开发模型,Git的原理和使用,git

创建仓库

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
注:创建的仓库可以关联到某个项⽬中被管理

添加成员

1. 添加企业成员

Git---企业级开发模型,Git的原理和使用,git

申请后需要负责人审批通过.
Git---企业级开发模型,Git的原理和使用,git

2.添加项目成员

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git

3. 添加仓库开发⼈员

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git

开发场景-基于git flow模型的实践

新需求加入

现有一个订单管理的新需求需要开发,首先可以基于develop分支创建一个feature/rose_20230710_pay分支.

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git

  1. 需求在feature/rose_20230710_pay分支开发完毕,这是研究人员可以将代码合并到develop分支,将其部署在开发环境的服务器中,方便开发人员进行测试和调试.
    a. 开发者在feature分支下发起请求评审

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
b. 审查员审查代码
Git---企业级开发模型,Git的原理和使用,git
c. 审查通过,合并分⽀
Git---企业级开发模型,Git的原理和使用,git
d. 合并成功,查看结果
Git---企业级开发模型,Git的原理和使用,git
2. 在 develop 下开发⼈员⾃测通过后,先确定下 develop 不存在未测试完毕的需求,然后研发⼈员可基于 develop 分⽀创建⼀个 release/xxx 分⽀出来,可交由测试⼈员进⾏测试

Git---企业级开发模型,Git的原理和使用,git
3. 测试⼈员测试 release 通过后(包含测试环境和预发布环境的测试),就可将代码合并⼊master.

Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
Git---企业级开发模型,Git的原理和使用,git
4. 测试⼈员在 master (正式环境) 测试通过后,便可删除 feature/xxx 分⽀.
Git---企业级开发模型,Git的原理和使用,git

修复测试环境Bug

develop测试出现了Bug,建议大家直接在feature分支上进行修复.
修复后的提测上线流程与新需求加入的流程一致.

修复预发布环境Bug

release测试出现了Bug,首先要回归develop分支是同样存在这个问题.

如果存在,修复流程与修复测试环境Bug流程一致.

如果不存在,这种可能性比较小,大部分是数据兼容问题,环境配置问题等.

修复正式环境Bug

master测试出现了Bug,首先要回归下releasedevelop分支是否同样存在这个问题.

如果存在,修复流程与修复测试环境Bug流程一致.

如果不存在,这种可能性也比较小,大部分是数据兼容问题,环境配置问题等.

紧急修复正式环境Bug

需求在测试环节未测试出Bug,上线一段时候后出现了Bug,需要紧急修复的.

有的企业面对紧急修复时,支持不进行环境测试的验证,但还是建议验证下预发布环境.

科技与master分支创建hotfix/xxx分支,修复完毕后发布到master验证,验证完毕后,将master分支合并到develop分支,同时删除掉hot/xxx分支.


总结

至此,关于Git的学习就告一段落啦!!!
希望大家有问题可以积极的私信我!!!文章来源地址https://www.toymoban.com/news/detail-546912.html

到了这里,关于Git---企业级开发模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Git 与 Maven:企业级版本管理与版本控制规范设计

    当今,许多开发人员熟悉 GitFlow 工作流程,但往往忽略了 GitFlow 如何与 Maven 版本控制结合,尤其是在管理 snapshot 和 release 版本时的最佳实践。本文旨在整合 GitFlow 工作流程与 Maven 版本管理,提出一个统一的企业级规范,以供开发人员参考。 GitFlow 是一种流行的分支管理模型

    2024年02月04日
    浏览(44)
  • AI大模型探索之路-实战篇3:基于私有模型GLM-企业级知识库开发实战

    在当今信息时代,数据已经成为企业的核心资产之一。对于许多企业而言,信息安全和私密性是至关重要的,因此对外部服务提供的数据接口存在天然的警惕性。因此常规的基于在线大模型接口落地企业知识库项目,很难满足这些企业的安全需求。面对这样的挑战,只有私有

    2024年04月23日
    浏览(48)
  • Java企业级信息系统开发学习笔记(4.2)Spring Boot项目单元测试、热部署与原理分析

    该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/pG623】 1. 添加测试依赖启动器和单元测试 修改pom.xml文件,添加依赖 刷新项目依赖 2. 创建测试类与测试方法 在 src/test/java 里创建 cn.kox.boot 包,创建测试类 TestHelloWorld01 给测试类添加测试启动器注解与Spring

    2024年02月10日
    浏览(48)
  • Go 企业级gRPC原理

    Go 企业级gRPC, 又名:Go企业级应用到底层开发(第5天) 这个系列是准备做从go基础到Web开发,系统编程,云原生应用, 网络编程, 工具和脚本开发, 机器学习,CGo编程, 还有最后的编译器层级底层的分析,点上关注,方便每天阅读 一键三连是我最大的动力。谢谢~~ gRPC简介

    2024年01月24日
    浏览(41)
  • Linux 企业级安全原理和防范技巧

    Linux 企业级安全原理和防范技巧以及网络和安全-Linux安全架构、安全威胁模型、以及加密、解密等原理,常见攻击和防范⼿段 1.1 企业级Linux系统安全威胁 企业级Linux系统安全威胁列表 分类 解决的主要安全威胁 安全威胁牵涉到的人员及操作 文件系统防护 避免有意/无意的文件

    2024年02月07日
    浏览(45)
  • 文心千帆大模型平台,一站式企业级大模型平台

    随着人工智能技术的不断发展,尤其是深度学习技术的广泛应用,大模型训练已成为当下研究的热点之一,随着计算能力的不断提升和数据规模的不断增加,大模型展现出了惊人的能力,能够处理更加复杂和庞大的任务。从计算机视觉到自然语言处理,从语音识别到推荐系统

    2024年02月16日
    浏览(40)
  • 企业级开发中协同开发与持续集成持续部署

    每个项目有唯一的代码仓库,所以不是每个开发者都需要创建一个代码仓库,一般都是项目负责人创建: 代码仓库有以下几种: github gitee gitlib 代码仓库的使用方法都差不多。 以gitee为例创建一个仓库: 如果没有账户的话,要注册一个新的用户名,注册用户之后,使用注册

    2024年02月14日
    浏览(46)
  • 从零开始:构建企业级AI大模型的最佳实践

    随着人工智能技术的不断发展,越来越多的企业开始投入人力、物力和财力来构建自己的企业级AI大模型。这些大模型在处理大规模数据、自然语言处理、图像识别等方面具有显著优势,为企业创造了巨大的价值。然而,构建企业级AI大模型并不是一件容易的事情,需要面对许

    2024年02月21日
    浏览(48)
  • k8s企业级应用系列(二):对象管理及Pod原理

    本节介绍对象的相关概念和管理机制。只有了解了这些机制,我们才能轻松的对k8s资源进行编排。 1 对象 Object k8s对象 即是对应用程序、工作负载、存储、网络等资源的抽象表示,如 image、pod、node、volume、service 等。集群中每个对象都有一个 名称 来标识其在 同类资源中 的

    2024年04月14日
    浏览(36)
  • 云表|低代码开发崛起:重新定义企业级应用开发

    nbsp; nbsp; nbsp; nbsp;低代码开发这个概念在近年来越来越受到人们的关注,市场对于低代码的需求也日益增长。据Gartner预测,到2025年,75%的大型企业将使用至少四种低代码/无代码开发工具,用于IT应用开发和公民开发计划。 nbsp; nbsp; nbsp; nbsp;那么,为什么低代码开发如此受到

    2024年02月08日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包