【Git企业开发】第四节.Git的分支管理策略和bug分支
文章目录
- 前言
- 一、Git的分支管理策略
- 1.1 Fast forward 模式和--no-ff 模式
- 1.2 企业分支管理策略
- 二、bug分支
- 三、删除临时分支
- 四、总结
- 总结
前言
一、Git的分支管理策略
1.1 Fast forward 模式和--no-ff 模式
通常合并分支时,如果可能,Git 会采用 Fast forward 模式。还记得如果我们采用 Fastforward 模式之后,形成的合并结果是什么呢?回顾一下图示说明:
在这种 Fast forward 模式下,删除分支后,查看分支历史时,会丢掉分支信息,看不出来最新提交到底是 merge 进来的还是正常提交的。
但在合并冲突部分,我们也看到通过解决冲突问题,会再进行一次新的提交,得到的最终状态为:图示说明:
那么这就不是 Fast forward 模式了,这样的好处是,从分支历史上就可以看出分支信息。例如我们现在已经删除了在合并冲突部分创建的 dev1 分支,但依旧能看到 master 其实是由其他分支合并得到。代码示例:hyb@139-159-150-152:~/gitcode$ git log --graph --pretty=oneline --abbrev-commit* 2976afc (HEAD -> master) merge ReadMe|\| * c594fd1 modify ReadMe* | c10f6d0 modify ReadMe|/Git 支持我们强制禁用 Fast forward 模式,那么就会在 merge 时生成一个新的 commit ,这样,从分支历史上就可以看出分支信息。
下⾯我们实战⼀下 --no-ff ⽅式的 git merge 。
步骤一: ⾸先,创建新的分支 dev2 ,并切换至新的分支:代码示例:hyb@139-159-150-152:~/gitcode$ git checkout -b dev2 #切换到分支dev2Switched to a new branch 'dev2'
步骤二:修改 ReadMe 文件,并提交一个新的 commit :代码示例:hyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,d #修改文件信息hyb@139-159-150-152:~/gitcode$ git add .hyb@139-159-150-152:~/gitcode$ git commit -m"modify ReadMe"[dev2 41b082f] modify ReadMe1 file changed, 1 insertion(+)
步骤三:切回 master 分支,通过开始--no-ff 方式合并
代码示例:
hyb@139-159-150-152:~/gitcode$ git checkout masterSwitched to branch 'master'hyb@139-159-150-152:~/gitcode$ git merge --no-ff -m "merge with no-ff" dev2Merge made by the 'recursive' strategy.ReadMe | 1 +1 file changed, 1 insertion(+)hyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,d请 注意 --no-ff 参数,表示禁用 Fast forward 模式。禁用 Fast forward 模式后合并会创建一个新的 commit ,所以加上 -m 参数,把描述写进去。
步骤四:合并后,查看分支历史
代码示例:
hyb@139-159-150-152:~/gitcode$ git log --graph --pretty=oneline --abbrev-commit* 5bd16b4 (HEAD -> master) merge with no-ff|\| * 41b082f (dev2) modify ReadMe|/可以看到,不使用 Fast forward 模式,merge后就像这样:图示示例:![]()
总结:
所以在合并分支时,加上 --no-ff 参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而 fast forward 合并就看不出来曾经做过合并。
1.2 企业分支管理策略
在实际开发中,我们应该按照几个 基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪⼲活呢?
干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。图示示例:所以,团队合作的分支看起来就像这样:![]()
二、bug分支
假如我们现在正在 dev2 分支上进行开发,开发到一半,突然发现 master 分支上面有 bug,需要解决。在Git中,每个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
可现在 dev2 的代码在工作区中开发了一半,还无法提交,怎么办?代码示例:hyb@139-159-150-152:~/gitcode$ git branch* dev2masterhyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,di am coding ... #dev2 的代码在工作区中开发了一半hyb@139-159-150-152:~/gitcode$ git statusOn branch dev2Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified: ReadMeno changes added to commit (use "git add" and/or "git commit -a")
Git 提供了 git stash 命令,可以将当前的⼯作区信息进⾏储藏,被储藏的内容可以在将来某个时间恢复出来。代码示例:hyb@139-159-150-152:~/gitcode$ git stashSaved working directory and index state WIP on dev2: 41b082f modify ReadMehyb@139-159-150-152:~/gitcode$ git statusOn branch dev2nothing to commit, working tree clean用 git status 查看工作区,就是干净的(除非有没有被 Git 管理的文件),因此可以放心地创建分支来修复bug。
储藏 dev2 工作区之后,由于我们要基于master分支修复 bug,所以需要切回 master 分支,再新建临时分支来修复 bug。代码示例:hyb@139-159-150-152:~/gitcode$ git checkout master # 切回masterSwitched to branch 'master'hyb@139-159-150-152:~/gitcode$ git checkout -b fix_bug # 新建并切换到 fix_bug 分⽀Switched to a new branch 'fix_bug'hyb@139-159-150-152:~/gitcode$ vim ReadMehyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,d,e # 修复bug--忘记写ehyb@139-159-150-152:~/gitcode$ git add ReadMe # 重新add,commithyb@139-159-150-152:~/gitcode$ git commit -m"fix bug"[fix_bug 4bbc0c4] fix bug1 file changed, 1 insertion(+), 1 deletion(-)
修复完成后,切换到 master 分⽀,并完成合并,最后删除 fix_bug 分⽀:代码示例:hyb@139-159-150-152:~/gitcode$ git checkout masterSwitched to branch 'master'hyb@139-159-150-152:~/gitcode$ git merge --no-ff -m"merge fix_bug branch" fix_buMerge made by the 'recursive' strategy.ReadMe | 2 +-1 file changed, 1 insertion(+), 1 deletion(-)hyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,d,ehyb@139-159-150-152:~/gitcode$ git branch -d fix_bugDeleted branch fix_bug (was 4bbc0c4).
⾄此,bug 的修复⼯作已经做完了,我们还要继续回到 dev2 分⽀进⾏开发。切换回 dev2 分⽀:代码示例:hyb@139-159-150-152:~/gitcode$ git checkout dev2Switched to branch 'dev2'hyb@139-159-150-152:~/gitcode$ git statusOn branch dev2nothing to commit, working tree clean
⼯作区是⼲净的,刚才的⼯作现场存到哪去了?
⽤ git stash list 命令看看:
代码示例:
hyb@139-159-150-152:~/gitcode$ git stash liststash@{0}: WIP on dev2: 41b082f modify ReadMe
⼯作现场还在,Git 把 stash 内容存在某个地⽅了,但是需要恢复⼀下,如何恢复现场呢?我们可以使⽤ git stash pop 命令,恢复的同时会把 stash 也删了,代码示例:hyb@139-159-150-152:~/gitcode$ git stash popOn branch dev2Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified: ReadMeno changes added to commit (use "git add" and/or "git commit -a")Dropped refs/stash@{0} (4f873250b3503687b5efd26196776aee7e3724c2)
再次查看的时候,我们已经发现已经没有现场可以恢复了代码示例:hyb@139-159-150-152:~/gitcode$ git stash listhyb@139-159-150-152:~/gitcode$
另外,恢复现场也可以采⽤ git stash apply 恢复,但是恢复后,stash内容并不删除,你需要 ⽤ git stash drop 来删除;你可以多次stash,恢复的时候,先⽤ git stash list 查看,然后恢复指定的stash,⽤命令git stash apply stash@{0} ,这部分请同学们⾃⾏使⽤。
恢复完代码之后我们便可以继续完成开发,开发完成后便可以进⾏提交:代码例如:hyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,di am coding ... Done!hyb@139-159-150-152:~/gitcode$ git add .hyb@139-159-150-152:~/gitcode$ git commit -m"modify ReadMe"[dev2 ed0916d] modify ReadMe1 file changed, 1 insertion(+)
但我们注意到了,修复 bug 的内容,并没有在 dev2 上显⽰。 此时的状态图为:
Master 分⽀⽬前最新的提交,是要领先于新建 dev2 时基于的 master 分⽀的提交的,所以我们在 dev2 中当然看不⻅修复 bug 的相关代码。
我们的最终⽬的是要让 master 合并 dev2 分⽀的,那么正常情况下我们切回 master 分⽀直接合并即可,但这样其实是 有⼀定⻛险的。是因为在合并分⽀时可能会有冲突,⽽代码冲突需要我们⼿动解决(在 master 上解决)。我们⽆法保证对于冲突问题可以正确地⼀次性解决掉,因为在实际的项⽬中,代码冲突不只⼀两⾏那么简单,有可能⼏⼗上百⾏,甚⾄更多,解决的过程中难免⼿误出错,导致错误的代码被合并到 master 上。此时的状态图为:![]()
解决这个问题的⼀个好的建议就是:最好在⾃⼰的分⽀上合并下 master ,再让 master 去合并dev ,这样做的⽬的是有冲突可以在本地分⽀解决并进⾏测试,⽽不影响 master 。此时的状态图为:第一步:
第二步:
注意:对应的实操演⽰如下,要说明的是,以下演⽰的merge操作,没有使⽤ --no-ff ,但上述的图⽰是禁⽤ Fast forward 了模式后得出的,主要是为了⽅便解释问题。
代码示例:
# dev 合并 masterhyb@139-159-150-152:~/gitcode$ git branch* dev2masterhyb@139-159-150-152:~/gitcode$ git merge masterAuto-merging ReadMeCONFLICT (content): Merge conflict in ReadMeAutomatic merge failed; fix conflicts and then commit the result.# 发⽣冲突hyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new branch<<<<<<< HEADa,b,c,di am coding ... Done!=======a,b,c,d,e>>>>>>> master# 解决冲突并重新提交hyb@139-159-150-152:~/gitcode$ vim ReadMehyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,d,ei am coding ... Done!hyb@139-159-150-152:~/gitcode$ git add .hyb@139-159-150-152:~/gitcode$ git commit -m"merge master"[dev2 447d29f] merge masterhyb@139-159-150-152:~/gitcode$ git statusOn branch dev2nothing to commit, working tree clean# 切回masterhyb@139-159-150-152:~/gitcode$ git checkout masterSwitched to branch 'master'# master 合并 dev2---⽆需解决冲突!!hyb@139-159-150-152:~/gitcode$ git merge dev2Updating 193421f..447d29fFast-forwardReadMe | 1 +1 file changed, 1 insertion(+)hyb@139-159-150-152:~/gitcode$ git statusOn branch masternothing to commit, working tree clean# 删除 dev2 分⽀hyb@139-159-150-152:~/gitcode$ git branch -d dev2Deleted branch dev2 (was 447d29f).
三、删除临时分支
软件开发中,总有⽆穷⽆尽的新的功能要不断添加进来。添加⼀个新功能时,你肯定不希望因为⼀些实验性质的代码,把主分⽀搞乱了,所以,每添加⼀个新功能,最好新建⼀个分⽀,我们可以将其称之为 feature 分⽀,在上⾯开发,完成后,合并,最后,删除该 feature 分⽀。
可是,如果我们今天正在某个 feature 分⽀上开发了⼀半,被产品经理突然叫停,说是要停⽌新功能的开发。虽然⽩⼲了,但是这个 feature 分⽀还是必须就地销毁,留着⽆⽤了。这时使⽤传统的 git branch -d 命令删除分⽀的⽅法是不⾏的。演⽰如下:# 新增并切换到 dev3 分⽀hyb@139-159-150-152:~/gitcode$ git checkout -b dev3Switched to a new branch 'dev3'# 开始开发新功能并提交hyb@139-159-150-152:~/gitcode$ vim ReadMehyb@139-159-150-152:~/gitcode$ cat ReadMehello bithello githello worldhello version1hello version2hello version3write bbb for new brancha,b,c,d,ei am coding ... Done!i am writing new features ...hyb@139-159-150-152:~/gitcode$ git add .hyb@139-159-150-152:~/gitcode$ git commit -m"modify ReadMe for new features"[dev3 cd2f149] modify ReadMe for new features1 file changed, 1 insertion(+)# 此时新功能叫停# 切回master准备删除dev3hyb@139-159-150-152:~/gitcode$ git checkout masterSwitched to branch 'master'# 常规删除dev3分⽀时失败hyb@139-159-150-152:~/gitcode$ git branch -d dev3error: The branch 'dev3' is not fully merged.If you are sure you want to delete it, run 'git branch -D dev3'.
直接使⽤传统的删除分⽀的⽅法不⾏,按照提⽰,有了如下⽅式:代码示例:hyb@139-159-150-152:~/gitcode$ git branch -D dev3Deleted branch dev3 (was cd2f149).hyb@139-159-150-152:~/gitcode$ git branch* master
四、总结
gitee分支的作用:
分⽀在实际中有什么⽤呢?假设你准备开发⼀个新功能,但是需要两周才能完成,第⼀周你写了50%的代码,如果⽴刻提交,由于代码还没写完,不完整的代码库会导致别⼈不能⼲活了。如果等代码全部写完再⼀次提交,⼜存在丢失每天进度的巨⼤⻛险。现在有了分⽀,就不⽤怕了。你创建了⼀个属于你⾃⼰的分⽀,别⼈看不到,还继续在原来的分⽀上。正常⼯作,⽽你在⾃⼰的分⽀上⼲活,想提交就提交,直到开发完毕后,再⼀次性合并到原来的分⽀上,这样,既安全,⼜不影响别⼈⼯作。并且 Git ⽆论创建、切换和删除分⽀,Git在1秒钟之内就能完成!⽆论你的版本库是1个⽂还是1万个⽂件。
总结
相关文章:

【Git企业开发】第四节.Git的分支管理策略和bug分支
文章目录 前言一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 1.2 企业分支管理策略二、bug分支三、删除临时分支四、总结总结 前言 一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 通常合并分支时,如果可能,Git 会…...

玩转硬件之Micro:bit的玩法(四)——声控灯
智能家居的普及在近几年来呈现出了爆发式的增长。随着科技的不断进步和人们对便利生活的追求,越来越多的家庭开始采用智能家居系统,使生活更加智能化、便捷化。 智能家居的普及不仅改变了人们的生活方式,也为家庭带来了更多的便利和舒适。现…...

STM32-创建项目流程
一、基于STM官网得库进行开发 准备工作:下载STM库文件 1、创建项目文件夹 2、在keil 中new uVision project,然后选择刚刚创建得文件夹,在文件夹里面创建一个文件,用来存放这个项目,然后在文件夹里面,写个文件名&am…...

软件测试 —— 移动端测试
1. 移动端 指移动设备(如智能手机、平板电脑、智能手表等)上的操作系统和应用程序。移动设备具有便携性和多功能性,可以随时随地连接互联网,提供丰富的应用和服务。 2. 移动端应用分类 (1) 原生应用(Native App&…...
PCL 计算一个平面与一个三角形的交线
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里实现一个很有趣的功能,就是获取一个平面与一个三角形的交线,具体的思路很简单,就是借助之前的博客中的思路:Matlab 计算一个平面与一条线段的交点,我们只需要遍历三角形中的所有边即可获取我们想要的交线,…...

Redis 应用问题
1-缓存穿透 1.1-问题描述 Key 对应的数据在数据源并不存在,每次针对此 Key 的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。 比如:用一个不存在的用户ID 获取用户信息,不论缓存还是数据库都没有&…...

Java 谈谈你对OOM的认识
文章目录 前言一、基础架构二、常见OOM1、栈内存溢出java.lang.StackOverflowError2、堆内存溢出java.lang.OutOfMemoryError:Java heap space3、GC回收时间过长java.lang.OutOfMemoryError: GC overhead limit exceeded4、NIO程序堆外内存溢出java.lang.OutOfMemor…...

JavaScript中BOM与DOM
BOM window对象 所有的浏览器都支持window对象,他表示浏览器窗口, 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量是 window 对象的属性。全局函数是 window 对象的方法。 接下来要讲的HTML DOM 的 document 也是…...

Nginx域名重定向(如何访问的域名和实际的数据请求路径不同,可解决前端跨域)
感情需要被抑制,不能泛滥… 当需要将一个域名重定向到另一个域名并且用户仍然看到原始域名时,Nginx是一个强大的工具。这种场景通常涉及到反向代理或重写URL的技巧。在本篇博客中,我们将详细介绍如何使用Nginx来实现这个目标,以及…...

2023年11月2日历史上的今天大事件早读
1082年11月02日宋徽宗出生 1861年11月02日辛酉政变 1910年11月02日中国社会学家和人类学家费孝通诞生 1910年11月02日畜生态学科的创始人汤逸人诞生 1917年11月02日《贝尔福宣言》和犹太复国主义 1917年11月02日美日订立“兰辛—石井协定”损害中国利益 1937年11月02日忻…...
红帽Redhat--Ansible实战1
在运行Windows操作系统的主机LAPTOP-OUR52V78上安装有VMware Workstation Player软件。因为Windows自带的虚拟机平台软件"Hyper-V"使用难度较大,而且关于在"Hyper-V"上运行虚拟机,修改虚拟机错误的相关技术博客和文章的数量稀少&…...
213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一…...

Spring 与 Spring Boot
什么是 Spring 可以理解 Spring 是一个框架。这个框架最早来源于在差不多的 20 年前的 2002 年。 在那个时候 Java 世界的开发还是以 EJB 为主,因为在这之前的大部分应用都会使用服务器客户端的应用模式。 其实这个模式在现在还是在使用的,例如 IBM 系统…...

Flutter 04 按钮Button和事件处理、弹框Dialog、Toast
一、按钮组件 1、按钮类型: 2、按钮实现效果: import package:flutter/material.dart;void main() {runApp(const MyApp()); }class MyApp extends StatelessWidget {const MyApp({Key? key}) : super(key: key);overrideWidget build(BuildContext co…...
thinkphp6多用用模式下缩短路由隐藏index应用名
thinkphp6多用用模式下缩短路由隐藏index应用名方法: 找到入口文件,一般public目录下index.php 找到 $response $http->run(); 替换为如下代码即可 // 关键在此处 $_amain index; $_aother admin|common; // 匹配此条件,就按照tp默…...
AM@二阶常系数非齐次线性微分方程@待定系数法可解决的经典类型1
文章目录 abstract二阶常系数非齐次线性微分方程待定系数法可解类型类型1小结例 abstract 二阶常系数非齐次线性微分方程待定系数法可解决的经典类型1及其解法总结与应用 本文给出类型1为什么可以通过待定求出特解,并且待定函数要设成什么形式推理过程有一定工作量,而在应用中…...
大数据技术笔记
1. 大数据技术简介 大数据技术是一系列的工具和方法,它们可以帮助我们收集、存储和分析大量的数据,并将结果呈现给我们。 2. 大数据计算模式 我们需要一些方法来处理这些数据,就像我们需要各种各样的厨具来处理食材一样。这些方法被称为大…...
Vue 3 中的 Composition API
✨理解 Vue 3 中的 Composition API 🎃 Vue 3 引入了全新的 Composition API,相较于传统的 Options API,它具备许多优势和适用场景。下面将介绍 Composition API 的优势和使用场景,并为你带来更好的开发体验。 🎁 Co…...
《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段出现“不需要大于576字节的IPv4数据报“相关内容的解释
《TCP/IP详解 卷一:协议》第5章的IPv4数据报的总长度字段的一些解释,出现以下内容(有省略): ....另外,主机不需要接收大于576字节的IPv4数据报.....以避免576字节的IPv4限制。 英文原文的内容(有…...
PO-java客户端连接错误can not connect to server
问题描述: 换电脑或者网络环境改变了,PO下载EST ID的jnlp提示can not connect to server*** ;**message server***这类错误 原因分析: 基本上都是PO消息服务器连接不上导致的错误,原理有均衡负载对应的IP转接后端口不…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...