git 迭代开发分支流程规范

article/2025/10/4 12:14:46

前言

Git 的名称太响了,相信大家都听说过,鼎鼎大名的同性交友网站 GitHub 就是基于 Git 作为唯一的版本库格式进行托管的平台。本篇不详细介绍 Git 的使用,仅介绍基于 Git 的开发分支流程规范,需要对 Git有一定的了解。

简述

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

  1. master/main: 主分支,版本正式发布的代码都用这个分支的代码进行编译,常设置为受保护的分支。
  2. dev/develop: 开发分支,开发环境基于此分支进行构建。
  3. feature-*: 开发某个特定功能的分支。
  4. hotfix-/fix-: bug 修复分支。
  5. release-*: 测试平台用。

对于比较小型的项目,参与人较少时,可以仅保留 master, develop 分支。

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

实际情况

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

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

迭代结束,将 develop 分支合并至 master, 并打上正式版的 tag

git分支流

开发流程

  1. develop 分支拉出一个新分支(feature-*/fix-*)。
  2. 开发完成,提交分支至远程仓库。
  3. 创建合并请求(merge requestfeature-* -> 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. 正常的开发流程。

参考

Git版本管理规范(Git Flow)
产品快速迭代时用Git做分支管理的详细步骤


http://chatgpt.dhexx.cn/article/eOMokDWE.shtml

相关文章

迭代开发和增量开发

(转自:http://blog.csdn.net/l12345678/article/details/5642851) “迭代”和“增量”是敏捷软件开发中的两个重要概念。弄清楚“迭代”和“增量”以及其依据,我们就可以在实际的操作中有章法可循。 为什么要迭代? 我们…

转」最佳方案:迭代式开发

前言 Fred Brooks 在 25 年前就曾写到:“不要指望一次成功,无论如何你都要这样。” 敏捷开发,小步快跑,持续迭代,不断改进,产品升级。 在用例需要之前,不要添加数据成员 在代码之前编写测试 …

alert意为:警告、警报。

在JavaScript代码中&#xff0c;alert的作用是弹出一个浏览器对话框&#xff0c;"JS代码"为提示对话框的内容 <body><script type"text/JavaScript"> alert("提交成功&#xff01;我会尽快与你取得联系"); </script></body…

JS中alert和alter

JS中没有alter&#xff0c;只用alert&#xff0c;alert表示输出后面的语句

js 的 alert函数问题

alert是js人非常熟悉的东西&#xff0c;可以用来调试&#xff0c;写在这里是想警醒我自己&#xff0c;以后再遇到这样的问题的时候谨记这么修改。 看一个简单例子&#xff1a; <body><div οnmοuseοveralert((function(){return"abc";}()))>abc</…

Alert 提示框的使用

1. Alert 基本的使用 1.1 实现 /// 提示框 struct AlertBootcamp: View {State var showAlert: Bool falseState var alertType: MyAlerts? nilState var alertTitle: String ""State var alertMessage: String ""State var backgroundColor: Color …

java中的alert是什么意思_javascript 中如何使用alert?

alert不行的,要变通的话还是用showModalDialog试试吧. window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框&#xff0c;由于是对话框&#xff0c;因此它并没有一般用window.open()打开的窗口的所有属性。 window.showModelessDialog()方法用来创建一个显示HTML…

Grafana面板(panel):报警功能(alerts)

文章目录 alerts(报警设置)Create a Grafana managed alerting ruleAdd Grafana managed rule alert notifications增加一个notification channel alert报警邮件中的链接地址错误如何配置alert产生的报警如何删除&#xff1f;alert设置注意事项 alerts(报警设置) 注意&#xf…

alertmanger 入门

alertmanger 安装 tags: alertmanager 文章目录 alertmanger 安装1. 简介2. 安装2.1 二进制包部署 AlertManager2.1.1 下载2.1.2 创建 alertmanager 配置文件2.1.3 启动2.1.4 查看状态 2.2 docker 安装2.3 关联 Prometheus 与 Alertmanager 2. 配置文件说明3. 配置示例&#x…

alertmanager的使用

alertmanager的使用 一、Alertanager的安装1、下载2、安装3、启动4、alertmanager和prometheus的整合 二、告警分组1、告警规则2、alertmanager.yml配置3、分组相关的alertmanager的配置4、邮件发送结果 三、告警抑制1、告警规则2、alertmanager.yml 配置抑制规则3、邮件发送结…

JavaScript window.alert

文章目录 相关背景HTML中嵌入JS的第一种方式实现代码图是结果在HTML中插入JS的第二种方式实现代码实现结果HTML中引入JS的第三种方式实现代码实现结果 相关背景 HTML中嵌入JS的第一种方式 实现代码 <!DOCTYPE html> <html lang"en"> <head><me…

Window alert() 方法

一 定义和用法 alert()方法用于显示带有一条指定消息和一个确认按钮的警告框。 二 语法 alert(message) 三 代码 <html> <head> <title>警告对话框的应用</title> <meta http-equiv"Content-Type" content"text/html; charsetgb2312…

html中js alert函数,javascript的alert是什么

alert是javascript中的一个内置函数&#xff0c;用于显示带有一条指定消息和一个“确认”按钮的警告框&#xff1b;语法“alert("文本")”。警告框经常用于确保用户可以得到某些信息&#xff1b;当警告框出现后&#xff0c;用户需要点击确定按钮才能继续进行操作。 本…

AlertManager 简介与使用

简介 之前我们学习 Prometheus 的时候就了解到 Prometheus 包含一个报警模块&#xff0c;就是我们的 AlertManager&#xff0c;Alertmanager 主要用于接收 Prometheus 发送的告警信息&#xff0c;它支持丰富的告警通知渠道&#xff0c;而且很容易做到告警信息进行去重&#xff…

【云原生】Grafana Alerting 告警模块介绍与实战操作

文章目录 一、概述二、Grafana Alerting 模块介绍三、配置图表四、告警告警规则五、配置告警通道&#xff08;Contact points&#xff09;1&#xff09;Email1、配置smtp&#xff08;grafana.ini&#xff09;2、配置消息模板3、配置告警通道 2&#xff09;WebHook1、编写webhoo…

alertmanager 简介

alertmanager 简介 tags: alertmanager 文章目录 alertmanager 简介1. 前言2. 架构3. 特性3.1 group&#xff08;分组&#xff09;3.2 Inhibition&#xff08;抑制&#xff09;3.3 Silences&#xff08;静默&#xff09; 1. 前言 Prometheus的报警功能主要是利用Alertmanager…

JS中alert的三种使用方式

JS中的alert&#xff0c;作用是在浏览器中弹出一个警告框。 而使用alert&#xff0c;有三种方式&#xff0c;不同的方式&#xff0c;所呈现的效果也不相同。 第一种方式&#xff1a;直接写在script标签中 代码如下&#xff1a; <!DOCTYPE html> <html><head&…

alert弹窗

如何制作一份漂亮的alert弹出框&#xff1f; 在web项目中&#xff0c;往往会用到alert弹出框&#xff0c;但是原生的js弹出框样式丑陋无法满足你的需求&#xff0c;这时你该怎么办呢&#xff1f; 我的做法是&#xff1a;重写window.alert方法。它的好处是不依赖其他组件&…

Kibana:Alerting - 警报介绍

在我之前的很多文章中&#xff0c;我都介绍了 Alerting。你可以在 “Elastic&#xff1a;菜鸟上手指南” 中的 “通知及警报” 一节找到。在今天的文章中&#xff0c;我将使用最新的 7.13 版本来展示如何使用规则&#xff08;rules&#xff09; 来检测复制条件下的 alerts。 警…

k8s--基础--26.7--监控告警系统--Alertmanager--发送报警到qq邮箱,钉钉

k8s–基础–26.7–监控告警系统–Alertmanager–发送报警到qq邮箱&#xff0c;钉钉 1、创建alertmanager-cm.yaml文件 在master1节点操作 1.1、脚本 vi /root/k8s/monitor/alertmanager-cm.yaml内容 kind: ConfigMap apiVersion: v1 metadata:name: alertmanagernamespace:…