001、Git开发流程规范

news/2024/11/14 14:38:50/

前言

本篇不详细介绍 Git 的使用,仅介绍基于 Git 的开发分支流程规范。

简述

Git 管理中,最重要的一个点就在于分支的管理。在项目开发中,一般涉及到 Git 的相关分支有:

master/main: 主分支,版本正式发布的代码都用这个分支的代码进行编译,常设置为受保护的分支。
dev/develop: 开发分支,开发环境基于此分支进行构建。
feature-: 开发某个特定功能的分支。
hotfix-/fix-: bug 修复分支。
release-: 测试平台用。
对于比较小型的项目,参与人较少时,可以仅保留 master, develop 分支。

这里只是一个常规的项目的分支管理,仅作借鉴,具体情况需具体分析。

实际情况

本人目前开发一个项目,代码是由我一个人写的,在进行短期迭代中。

每天就是基于 develop 分支进行代码编写,功能写完后直接提交至 develop 分支进行测试环境的搭建,提交测试,有问题了直接修改提交至 develop 分支,即 develop 分支上的代码就是测试环境所用的代码

迭代结束,将 develop 分支合并至 master, 并打上正式版的 tag。
在这里插入图片描述

开发流程

  1. 从 develop 分支拉出一个新分支(feature-/fix-)。
  2. 开发完成,提交分支至远程仓库。
  3. 创建合并请求(merge request,feature-* -> develop),请求项目管理人去进行代码审查并合并分支至 develop。
  4. 测试通过后,将 develop 分支合并至 master 分支,并打上相应的 tag,一般为正式版本号。

项目每一个版本,都会重复上述流程。

问题 && 解决

迭代过程中(1.1),发现了上一个正式版(1.0)发布,有重大的 bug 需要修复,比较紧急,但是当前 develop 分支更改了很多 1.1 版本的功能,还没有测试完成,不能直接根据当前的 develop 分支进行修改。
还好之前发布 1.0 版本时将当时 develop 分支的代码合并到了 master 分支,现在只需要从 master 分支上拉取代码进行修改,再将修改的内容合并到 master 进行发布即可。这里要注意之后再开发 develop 分支的时候,要先拉取一下 master 的代码进行合并,有冲突就修改,保证下次从 develop 分支再合并到 master 的时候不会有冲突。

总结

  • Git 的流程设计还是很棒的,熟悉了之后是可以方便的进行联合开发工作,建议多花些时间了解。
  • 对于不同规模,不同场景下的项目,Git 的工作流是可以自行更改优化的,最终的目的就是方便、快速、准确的构建项目体系。

本篇主要讲述了一个迭代过程中,突遇线上紧急 bug 需要修复时的 git 工作流的设计,即保证线上的环境用的始终是 master 分支的代码:

  1. 从 master 检出新的分支并进行修改。
  2. 将修改后的代码合并到 master 分支,并编译发布,打 tag。
  3. 将修改后的 master 分支合并到当前开发的 develop 分支,解决冲突。
  4. 正常的开发流程。

http://www.ppmy.cn/news/1528217.html

相关文章

easy-es动态索引支持

背景 很多项目目前都引入了es,由于es弥补了mysql存储及搜索查询的局限性,随着技术的不断迭代,原生的es客户端使用比较繁琐不直观,上手代价有点大,所以easy-es框架就面世了,学习成本很低,有空大…

Spring Boot中使用注解拦截器实现通用校验器和基于角色的权限注解

通过使用Spring Boot的注解和拦截器,我们可以优雅地实现通用校验器和灵活的权限控制。本文将以电商交易系统为案例,详细讲解如何在Spring Boot中实现支持角色入参的权限校验器,以及如何通过注解拦截器实现通用校验器,提供高拓展性…

企业专用智能云盘 | 帮助企业便捷管控企业文档 | 天锐绿盘云文档安全管理系统

由于当前多数企业内部的办公文件普遍散落于各员工电脑中,导致存在诸多潜在的文档使用风险。为优化团队协作效率,天 锐 绿盘是一款集文档统一管理、高效协同于一体的企业云盘,帮助企业解决文档管理中的诸多难题。 【地址:点击了解天…

2024永久激活版 Studio One 6 Pro for mac 音乐创作编辑软件 完美兼容

Studio One 6是一款功能强大的音乐制作软件,由PreSonus公司开发。它提供了全面的音频录制、编辑、混音和母带处理工具,适用于音乐制作人、音频工程师和创作人员。 Studio One 6拥有直观的用户界面,使用户能够快速而流畅地进行音乐创作。它采…

Elasticsearch集群的运维与管理

【1】安装启动ES 集群 (1.1)集群架构规划 OS  ES versionIpnode.nameRolecluster.namees basedirCentOS Linux release 7.8.2003 (Core)elasticsearch-7.14.1 192.168.175.132:9200 cluster:192.168.175.132:9301 node_1 node.mastertrue …

海外问卷调查:选择静态IP还是动态IP?

在全球化的市场研究中,海外问卷调查是一种重要的数据收集手段。然而,选择合适的IP类型对于确保调查的效率、质量和合法性至关重要。本文将探讨在进行海外问卷调查时,静态IP与动态IP的优劣,并提供决策指导。 一、IP类型基础 在深入…

单片机实现内存管理的C语言实现

在嵌入式系统(如单片机)中,内存资源非常有限,因此需要高效的内存管理机制。在这种情况下,可能无法使用标准的动态内存管理函数(如 malloc 和 free)。因此,通常需要设计一个自定义的内…

【java面试每日五题之基础篇一】(仅个人理解)

1. 怎么理解面向对象编程(Object Oriented Programming,OOP) 面向对象编程是一种编程范式,核心思想是将真实世界中的事物都抽象为对象,通过与代码中的对象进行交互从而实现各种需求,对于OOP中关键概念的理解…