当前位置: 首页 > news >正文

Git 分支指南

什么是 Git 分支?

Git 分支是仓库内的独立开发线,你可以把它想象成一个单独的工作空间,在这里你可以进行修改,而不会影响主分支(或 默认分支)。分支允许开发者在不影响项目实际版本的情况下,开发新功能、修复错误或进行实验。

为什么使用分支?

分支在开发流程中提供了诸多好处:

  • 隔离:将不同的任务(功能、错误修复、实验)分开。
  • 协作:多个开发者可以在不同的分支上工作,而不会相互干扰。
  • 安全实验:在不影响生产代码的情况下测试更改。
  • 版本控制:轻松回滚或切换到项目的不同版本。

在 Git 中,默认分支通常被称为 main。然而,可以根据不同目的创建新的分支,例如:

  • 功能修复(feature/new-ui):用于开发新功能。
  • 修复分支(hotfix/login-fix):用于修复生产中的问题。
  • 发布分支(release/v1.2.0):用于准备部署的稳定版本。

接下来,我们以下面四个主题讨论分支管理

  • 创建和管理本地分支
  • 合并分支
  • 远程分支和分支跟踪
  • 分支工作流程(功能分支、热修复和发布)

创建和管理本地分支

正如前面提到的,Git 分支允许你在不影响主代码库的情况下开发新功能、修复错误或进行实验。以下是高效创建、切换、重命名和删除分支的方法。

1.创建新分支

git branch feature/create-article
  • 创建一个名为 feature/create-article 的新分支,但不会切换到该分支。
  • 当你需要准备多个分支但不想立即切换时,可以使用

2.切换到分支

git checkout feature/create-article
  • 切换到指定的分支、

现代替代方法:可以使用 git switch

git switch feature/create-article
  • 这是 cheackout 的替代方法

3.创建并切换到新分支

git checkout -b feature/create-article-2
  • 创建一个新分支并立即切换到该分支
  • 通过将两条命令合并为一条,节省了时间

现代替代方法

git switch -c feature/create-article-2

4.列出所有分支

git branch
  • 显示所有本地分支。当前分支会用 * 标记
  feature/create-article
* feature/create-article-2main
  • 这有助于 跟踪可用分支并切换到它们之间

要列出远程分支

git branch -a

5.重命名分支

git branch -m feature/create-article-2 feature/create-article-1
  • 将分支 feature/create-article-2 重命名为 feature/create-article-1

如果你已经在要重命名的分支上:

git branch -m feature/create-article-1

6.安全删除本地分支

git branch -d feature/create-article-1
  • 只有当分支已经被合并到另一个分支时,才会删除该分支。
  • 如果分支有未合并的更改,Git 会阻止删除,以避免数据丢失。

7.强制删除分支(危险)

git branch -D feature/create-article
  • 即使分支有未合并的更改,也会删除该分支。
  • 小心使用,以免丢失重要工作。

合并分支

在 Git 中,合并 是将一个分支的更改整合到另一个分支的过程。它通常用于将不同开发分支的更新合并到 main 分支。

1.将分支合并到当前分支

git merge feature/create-article
  • 这会将 feature/create-article 的更改整合到你当前所在的分支。
  • 如果没有冲突,Git 会自动完成合并。

在合并之前,请确保你在正确的分支上:

git checkout main
git merge feature/create-article

2.解决合并冲突

在合并过程中,如果存在冲突,Git 会暂停合并过程,并通知你冲突的文件。

编辑这些文件以解决冲突,冲突标记如下:

<<<<<<< HEAD
(当前分支的更改)
=======
(要合并分支的更改)
>>>>>>> main
  • HEAD 部分代表当前分支的更改。
  • ======= 以下的部分来自要合并的分支

解决冲突的步骤

  1. 在文本编辑器或 VS Code 中打开冲突文件。
  2. 手动编辑并保留正确的代码版本。
  3. 标记文件为已解决:
git add .
  1. 通过提交完成合并:
git commit -m "解决冲突文件。"

要放弃合并并返回到之前的状态:

git merge --abort

Git 合并类型

Git 根据分支是否分叉支持不同的合并策略。

1.快速前进合并(无分叉)

当要合并的分支领先于当前分支且当前分支没有任何更改时,会发生快速前进合并。

Git 会将分支指针向前移动,而不是创建合并提交。

示例

git checkout main
git merge feature/create-article
  • main 自从 feature/create-article 分支创建以来没有更改时,这会生效。
Updating 5a26f39..db14708
Fast-forwardfilename.txt | 1 +1 file changed, 1 insertion(+)create mode 100644 filename.txt

2.三方合并(分叉分支)

当两个分支有不同的历史且无法快速前进时,会发生三方合并。

Git 会创建一个新的合并提交来合并更改。

git checkout main
git merge feature/create-article

你会看到类似以下的提交信息:

Merge branch 'feature/create-article' into main

远程分支和分支跟踪

远程分支是存储在远程仓库(GitHub、GitLab、Bitbucket)中的分支版本。

这些分支允许多个开发者通过保持本地仓库与远程仓库同步进行协作。

为什么使用远程分支?

  • 通过推送和拉取更改与其他开发者协作
  • 在中央仓库中备份工作
  • 管理不同环境(main、dev、staging)

1.列出远程分支

要查看远程仓库中存储的所有分支:

git branch -r
  • 这只会列出远程分支,以 origin/ 为前缀。

要列出本地和远程分支:

git branch -a
  • 这有助于检查哪些分支在本地和远程存在。

2.创建跟踪远程分支的本地分支

如果你想在本地使用远程分支,可以使用以下命令:

git checkout --track origin/dev
  • 这会创建一个本地分支,自动跟踪远程分支。

返回结果如下

分支 'dev' 设置为跟踪 'origin/dev'。
切换到新分支 'dev'
  • 当 Git 没有自动跟踪分支时,这非常有用。

3.跟新远程分支

从远程仓库获取更新,确保你拥有最新的分支列表:

git fetch
  • 这会下载远程更改,但不会将它们应用到你的工作目录。

4.将远程分支的更改合并到当前分支

要将远程分支的最新更新拉取到你的本地分支:

git pull origin main

这相当于运行以下命令:

git fetch
git merge origin/main

如果分支已经跟踪 origin/<分支名>,你可以直接运行:

git pull
  • 如果发生冲突,请手动解决冲突并提交更改。

5.将新的本地分支推送到远程仓库

在本地创建新分支后,将其推送到远程仓库:

git push --set-upstream origin de
  • –set-upstream 标志设置了跟踪,这样未来的 git pullgit push 命令就可以在不指定远程分支的情况下运行。

6.删除远程分支

如果远程分支不再需要,可以使用以下命令删除:

git push origin --delete dev
  • 这会从远程仓库中删除 origin/dev

要删除本地对已删除远程分支的引用:

git remote prune origin

分支工作流程(功能分支、热修复和发布)

本指南概述了使用 Git 分支进行功能开发、热修复和发布的典型工作流程。

目标是展示如何部署版本、修复错误并推出新功能。

1.功能分支

功能分支允许你在不影响主代码库的情况下独立开发新功能。

最好创建并明确指定这些功能分支。

git checkout -b feature/create-article
  • 在功能分支上进行开发并提交更改,随着进度定期提交。
  • 将功能分支合并到 maindev 分支。
git checkout dev
git merge feature/create-article

2.热修复分支

热修复用于在生产环境中紧急修复错误,通常基于 main 分支。

  • dev 分支创建新的热修复分支:
git checkout -b hotfix/main-article dev
  • 在热修复分支上进行修复并提交。
  • 将热修复分支合并到 main 分支:
git checkout dev
git merge hotfix/main-article dev

3.发布分支

发布分支用于准备软件的新版本以供生产使用。它们允许进行测试和版本管理。

  • dev 分支创建新的发布分支:发布分支应基于 dev 分支,以包含所有新功能。
git checkout -b release/1.0.0 dev
  • 进行测试和准备发布,根据需要提交更改。
  • 将发布分支合并到 main 分支并标记发布版本。
git checkout main
git merge release/1.0.0
git tag -a v1.0.0 -m "Release 1.0.0"
  • 为确保在发布过程中所做的最终更改能够合并回 dev 分支,请执行以下操作:

git checkout dev
git merge release/1.0.0

以上就是关于 Git 分支的完整指南,涵盖了从基础概念到实际操作的各个方面。通过合理使用分支,你可以更高效地管理代码开发流程,无论是开发新功能、修复紧急问题,还是准备版本发布,分支都能提供强大的支持。

相关文章:

Git 分支指南

什么是 Git 分支&#xff1f; Git 分支是仓库内的独立开发线&#xff0c;你可以把它想象成一个单独的工作空间&#xff0c;在这里你可以进行修改&#xff0c;而不会影响主分支&#xff08;或 默认分支&#xff09;。分支允许开发者在不影响项目实际版本的情况下&#xff0c;开…...

自动泊车技术—相机模型

一、相机分类及特性 传感器类型深度感知原理有效工作范围环境适应性功耗水平典型成本区间数据丰富度单目相机运动视差/几何先验1m~∞光照敏感1-2W5−5−502D纹理中双目相机立体匹配 (SGM/SGBM算法)0.3m~20m纹理依赖3-5W50−50−3002D稀疏深度多摄像头系统多视角三角测量0.1m~5…...

程序代码篇---esp32视频流处理

文章目录 前言一、ESP32摄像头设置1.HTTP视频流&#xff08;最常见&#xff09;2.RTSP视频流3.MJPEG流 二、使用OpenCV读取视频流1. 读取HTTP视频流2. 读取RTSP视频流 三、使用requests库读取MJPEG流四、处理常见问题1. 连接不稳定或断流2. 提高视频流性能2.1降低分辨率2.2跳过…...

数据结构与算法分析实验12 实现二叉查找树

实现二叉查找树 1、二叉查找树介绍2.上机要求3.上机环境4.程序清单(写明运行结果及结果分析)4.1 程序清单4.1.1 头文件 TreeMap.h 内容如下&#xff1a;4.1.2 实现文件 TreeMap.cpp 文件内容如下&#xff1a;4.1.3 源文件 main.cpp 文件内容如下&#xff1a; 4.2 实现展效果示5…...

深入浅出之STL源码分析2_类模版

1.引言 我在上面的文章中讲解了vector的基本操作&#xff0c;然后提出了几个问题。 STL之vector基本操作-CSDN博客 1.刚才我提到了我的编译器版本是g 11.4.0&#xff0c;而我们要讲解的是STL&#xff08;标准模板库&#xff09;&#xff0c;那么二者之间的关系是什么&#x…...

Docker、Docker-compose、K8s、Docker swarm之间的区别

1.Docker docker是一个运行于主流linux/windows系统上的应用容器引擎&#xff0c;通过docker中的镜像(image)可以在docker中构建一个独立的容器(container)来运行镜像对应的服务&#xff1b; 例如可以通过mysql镜像构建一个运行mysql的容器&#xff0c;既可以直接进入该容器命…...

【Linux】线程的同步与互斥

目录 1. 整体学习思维导图 2. 线程的互斥 2.1 互斥的概念 2.2 见一见数据不一致的情况 2.3 引入锁Mutex(互斥锁/互斥量) 2.3.1 接口认识 2.3.2 Mutex锁的理解 2.3.3 互斥量的封装 3. 线程同步 3.1 条件变量概念 3.2 引入条件变量Cond 3.2.1 接口认识 3.2.2 同步的…...

C++发起Https连接请求

需要下载安装openssl //stdafx.h #pragma once #include<iostream> #include <openssl/ssl.h> #include <openssl/err.h> #include <iostream> #include <string>#pragma comment(lib, "libssl.lib") #pragma comment(lib, "lib…...

Linux 内核链表宏的详细解释

&#x1f527; Linux 内核链表结构概览 Linux 内核中的链表结构定义在头文件 <linux/list.h> 中。核心结构是&#xff1a; struct list_head {struct list_head *next, *prev; }; 它表示一个双向循环链表的节点。链表的所有操作都围绕这个结构体展开。 &#x1f9e9; …...

[架构之美]Spring Boot集成MyBatis-Plus高效开发(十七)

[架构之美]Spring Boot集成MyBatis-Plus高效开发&#xff08;十七&#xff09; 摘要&#xff1a;本文通过图文代码实战&#xff0c;详细讲解Spring Boot整合MyBatis-Plus全流程&#xff0c;涵盖代码生成器、条件构造器、分页插件等核心功能&#xff0c;助你减少90%的SQL编写量…...

游戏引擎学习第270天:生成可行走的点

回顾并为今天的内容定下基调 今天的计划虽然还不完全确定&#xff0c;可能会做一些内存分析&#xff0c;也有可能暂时不做&#xff0c;因为目前并没有特别迫切的需求。最终我们会根据当下的状态随性决定&#xff0c;重点是持续推动项目的进展&#xff0c;无论是 memory 方面还…...

批量统计PDF页数,统计图像属性

软件介绍&#xff1a; 1、支持批量统计PDF、doc\docx、xls\xlsx页数 2、支持统计指定格式文件数量&#xff08;不填格式就是全部&#xff09; 3、支持统计JPG、JPEG、PNG图像属性 4、支持统计多页TIF页数、属性 5、支持统计PDF、JPG画幅 统计图像属性 「托马斯的文件助手」…...

QT Creator配置Kit

0、背景&#xff1a;qt5.12.12vs2022 记得先增加vs2017编译器 一、症状&#xff1a; 你是否有以下症状&#xff1f; 1、用qt新建的工程&#xff0c;用qmake&#xff0c;可惜能看见的只有一个pro文件&#xff1f; 2、安装QT Creator后&#xff0c;使用MSVC编译显示no c com…...

[架构之美]IntelliJ IDEA创建Maven项目全流程(十四)

[架构之美]IntelliJ IDEA创建Maven项目全流程&#xff08;十四&#xff09; 摘要&#xff1a;本文将通过图文结合的方式&#xff0c;详细讲解如何使用IntelliJ IDEA快速创建Maven项目&#xff0c;涵盖环境配置、项目初始化、依赖管理及常见问题解决方案。适用于Java开发新手及…...

SpringBoot学习(上) , SpringBoot项目的创建(IDEA2024版本)

目录 1. SpringBoot介绍 SpringBoot特点 2. SpringBoot入门 2.1 创建SpringBoot项目 Spring Initialize 第一步: 选择创建项目 第二步: 选择起步依赖 第三步: 查看启动类 2.2 springboot父项目 2.3 测试案例 2.3.1 数据库 2.3.2 生成代码 1. SpringBoot介绍 Spring B…...

《Python星球日记》 第51天:神经网络基础

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、引言&#xff1a;走进神经网络的世界二、神经元与激活函数1. 神经元&#x…...

MindSpore框架学习项目-ResNet药物分类-模型评估

目录 4.模型评估 4.1模型预测 4.1.1加载模型 4.1.2通过传入图片路径进行推理 单张图片推理代码解释 4.2图片推理 4.2.1构造可视化推理结果函数 可视化推理结果函数代码解释 4.2.2进行单张推理 参考内容&#xff1a; 昇思MindSpore | 全场景AI框架 | 昇思MindSpore社区…...

Visual Studio Code 前端项目开发规范合集【推荐插件】

文章目录 前言代码格式化工具&#xff08;Prettier&#xff09;1、下载 prettier 相关依赖&#xff1a;2、安装 Vscode 插件&#xff08;Prettier&#xff09;&#xff1a;3、配置 Prettier&#xff08;.prettierrc.cjs&#xff09;&#xff1a; 代码规范工具&#xff08;ESLin…...

uniapp-商城-48-后台 分类数据添加修改弹窗bug

在第47章的操作中&#xff0c;涉及到分类的添加、删除和更新功能&#xff0c;但发现uni-popup组件存在bug。该组件的函数接口错误导致在小程序中出现以下问题&#xff1a;1. 点击修改肉类名称时&#xff0c;回调显示为空&#xff0c;并报错“setVal is not defined”&#xff0…...

OpenLayers 精确经过三个点的曲线绘制

OpenLayers 精确经过三个点的曲线绘制 根据您的需求&#xff0c;我将提供一个使用 OpenLayers 绘制精确经过三个指定点的曲线解决方案。对于三个点的情况&#xff0c;我们可以使用 二次贝塞尔曲线 或 三次样条插值&#xff0c;确保曲线精确通过所有控制点。 实现方案 下面是…...

uniapp小程序中实现无缝衔接滚动效果

组件滚动通知只能实现简单的滚动效果&#xff0c;不能实现滚动内容中的字进行不同颜色的更改&#xff0c;下面实现一个无缝衔接的滚动动画&#xff0c;可以根据自己的需要进行艺术化的更改需要滚动的内容&#xff0c;也可以自定义更改滚动速度。 <template><view cla…...

【Docker 新手入门指南】第四章:镜像加速

【Docker 新手入门指南】系列文章目录 【Docker 新手入门指南】第一章&#xff1a;前言【Docker 新手入门指南】第二章&#xff1a;架构概述【Docker 新手入门指南】第三章&#xff1a;快速安装【Docker 新手入门指南】第四章&#xff1a;镜像加速 文章目录 &#x1f680;【Doc…...

k8s删除pv和pvc后,vg存储没释放分析

原因是pv对应的lvm没删除 pv如下&#xff1a; local-068e2cac-22de-40f3-af90-efd151d043c8 100Gi RWO Retain Released sase-ops/alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0 …...

Ubuntu 22.04(WSL2)使用 Docker 安装 Zipkin 和 Skywalking

Ubuntu 22.04&#xff08;WSL2&#xff09;使用 Docker 安装 Zipkin 和 Skywalking 分布式追踪工具在现代微服务架构中至关重要&#xff0c;它们帮助开发者监控请求在多个服务之间的流动&#xff0c;识别性能瓶颈和潜在错误。本文将指导您在 Ubuntu 22.04&#xff08;WSL2 环境…...

【DLF】基于语言的多模态情感分析

作者提出的不足​​ ​​模态平等处理导致冗余与冲突​​ ​​问题​​:现有MSA方法对所有模态(语言、视觉、音频)平等处理,忽略模态间贡献差异(如语言为主导模态)。​​后果​​:跨模态交互引入冗余信息(如视觉和音频中与情感无关的噪声),甚至模态对间双向信息传递(…...

window 显示驱动开发-线性伸缩空间段

线性伸缩空间段类似于线性内存空间段。 但是&#xff0c;伸缩空间段只是地址空间&#xff0c;不能容纳位。 若要保存位&#xff0c;必须分配系统内存页&#xff0c;并且必须重定向地址空间范围以引用这些页面。 内核模式显示微型端口驱动程序&#xff08;KMD&#xff09;必须实…...

[Linux网络_71] NAT技术 | 正反代理 | 网络协议总结 | 五种IO模型

目录 1.NAT技术 NAPT 2.NAT和代理服务器 3.网线通信各层协议总结 补充说明 4.五种 IO 模型 1.什么是IO&#xff1f;什么是高效的IO&#xff1f; 2.有那些IO的方式&#xff1f;这么多的方式&#xff0c;有那些是高效的&#xff1f; 异步 IO &#x1f3a3; 关键缺陷类比…...

免费5个 AI 文字转语音工具网站!

一个爱代码的设计师在运营,不定时分享干货、学习方法、效率工具和AIGC趋势发展。个人网站&#xff1a;tomda.top 分享几个好用的文字转语音、语音转文字的在线工具&#xff0c;麻烦需要的朋友保存。 01. ChatTTS 中英文智能转换&#xff0c;语音自然流畅&#xff0c;在线免费…...

【入门】数字走向II

描述 输入整数N&#xff0c;输出相应方阵。 输入描述 一个整数N。&#xff08; 0 < n < 10 ) 输出描述 一个方阵&#xff0c;每个数字的场宽为3。 #include <bits/stdc.h> using namespace std; int main() {int n;cin>>n;for(int in;i>1;i--){for(…...

Linux基础(文件权限和用户管理)

1.文件管理 1.1 文件权限 文件的权限总共有三种&#xff1a;r&#xff08;可读&#xff09;&#xff0c;w&#xff08;可写&#xff09;&#xff0c;x&#xff08;可执行&#xff09;&#xff0c;其中r是read&#xff0c;w是write&#xff0c;x是execute的缩写。 我们…...

【BYD_DM-i技术解析】

关键词&#xff1a;构型、能量流、DM-i 一、发展历史&#xff1a;从DM1到DM5的技术跃迁 比亚迪DM&#xff08;Dual Mode&#xff09;技术始于2008年&#xff0c;其发展历程可划分为五代&#xff0c;核心目标始终围绕“油电协同”与“高效节能”展开&#xff1a; DM1&#xf…...

React Hooks 精要:从入门到精通的进阶之路

Hooks 是 React 16.8 引入的革命性特性,它让函数组件拥有了类组件的能力。以下是 React Hooks 的详细使用指南。 一、基础 Hooks 1. useState - 状态管理 import { useState } from react;function Counter() {const [count, setCount] = useState(0); // 初始值为0return …...

为什么选择 FastAPI、React 和 MongoDB?

在技术日新月异的今天,全栈开发需要兼顾效率、性能和可扩展性。FastAPI、React 和 MongoDB 这三者的组合,恰好构成了一个覆盖前后端与数据库的技术黄金三角。它们各自解决了开发中的核心痛点,同时以轻量化的设计和强大的生态系统,成为现代 Web 开发的首选方案。以下将从架构…...

01背包类问题

文章目录 [模版]01背包1. 第一问: 背包不一定能装满(1) 状态表示(2) 状态转移方程(3) 初始化(4) 填表顺序(5) 返回值 2. 第二问: 背包恰好装满3. 空间优化 416.分割等和子集1. 状态表示2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 [494. 目标和](https://leetcode.cn/proble…...

重复的子字符串

28. 找出字符串中第一个匹配项的下标 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 示例 1&#…...

Spark MLlib网页长青

一、实验目的 1.掌握Spark SQL中用户自定义函数的编写。 2. 掌握特征工程的OneHotEncoder、VectorAssembler。 3. 熟悉决策树算法原理,能够使用Spark MLlib库编写程序 4. 掌握二分类问题评估方法 5. 能够使用TrainValidation和crossValidation交叉验证找出最佳模型。 6…...

详解多协议通信控制器

详解多协议通信控制器 在上文中,我们使用Verilog代码实现了完整的多协议通信控制器,只是讲解了具体原理与各个模块的实现代码,但是为什么这么写?这么写有什么用?模块与模块之间又是怎么连接相互作用的?今天我们就来处理这些问题。 为什么不能直接用 FPGA 内部时钟给外设?…...

JavaWeb基础

七、JavaWeb基础 javaWeb&#xff1a;完整技术体系&#xff0c;掌握之后能够实现基于B/S架构的系统 1. C/S和B/S 1.1 C/S&#xff08;Client/server&#xff09; C/S&#xff1a;客户端与服务器 本质&#xff1a;本地上有代码&#xff08;程序在本机上&#xff09;优点&#…...

localStorage和sessionStorage

localStorage和sessionStorage localStorage是指在用户浏览器中存储数据的方式&#xff0c;允许Web应用程序将少量的数据保存在用户设备上&#xff0c;便于页面之间、关闭浏览器后的数据持久化&#xff0c;他不会随着HTTP请求发送道服务器&#xff0c;减少带宽消耗&#xff0c…...

c++类【高潮】

类继承 和直接复制源代码修改相比&#xff0c;继承的好处是减少测试。 基类&#xff1a;原始类&#xff0c; 派生类&#xff1a;继承类&#xff0c;基于基类丰富更多内容的类。 继承一般用公有继承&#xff0c;class 派生类名 : public 基类名{……}&#xff1b; 公有继承&…...

C++进阶--AVL树的实现续

文章目录 C进阶--AVL树的实现双旋AVL树的查找AVL树的检验结语 很高兴和搭大家见面&#xff0c;给生活加点impetus&#xff0c;开启今天的比编程之路&#xff01;&#xff01; 今天我们来完善AVL树的操作&#xff0c;为后续红黑树奠定基础&#xff01;&#xff01; 作者&#x…...

1 2 3 4 5顺序插入,形成一个红黑树

红黑树的特性与优点 红黑树是一种自平衡的二叉搜索树&#xff0c;通过额外的颜色标记和平衡性约束&#xff0c;确保树的高度始终保持在 O(log n)。其核心特性如下&#xff1a; 每个节点要么是红色&#xff0c;要么是黑色。根节点和叶子节点&#xff08;NIL节点&#xff09;是…...

Telnetlib三种异常处理方案

1. socket.timeout 异常 触发场景 网络延迟高或设备响应缓慢&#xff0c;导致连接或读取超时。 示例代码 import telnetlib import socketdef telnet_connect_with_timeout(host, port23, timeout2):try:# 设置超时时间&#xff08;故意设置较短时间模拟超时&#xff09;tn…...

Linux:进程间通信---消息队列信号量

文章目录 1.消息队列1.1 消息队列的原理1.2 消息队列的系统接口 2. 信号量2.1 信号量的系统调用接口 3. 浅谈进程间通信3.1 IPC在内核中数据结构设计3.2 共享内存的缺点3.3 理解信号量 序&#xff1a;在上一章中&#xff0c;我们引出了命名管道和共享内存的概念&#xff0c;了解…...

暗物质卯引力挂载技术

1、物体质量以及其所受到的引力约束(暗物质压力差) 自然界的所有物体,其本身都是没有质量的。我们所理解的质量,其实是物体球周空间的暗物质对物体的挤压,压力差。 对于宇宙空间中的单个星球而言,它的球周各处压力是相同的,所以,它处于平衡状态,漂浮在宇宙中。 对于星…...

JMeter 中实现 双 WebSocket(双WS)连接

在 JMeter 中实现 双 WebSocket&#xff08;双WS&#xff09;连接 的测试场景&#xff08;例如同时连接两个不同的 WebSocket 服务或同一服务的两个独立会话&#xff09;&#xff0c;可以通过以下步骤配置&#xff1a; 1. 场景需求 两个独立的 WebSocket 连接&#xff08;例如 …...

卡尔曼滤波算法简介与 Kotlin 实现

一、引言 卡尔曼滤波&#xff08;Kalman Filter&#xff09;是一种基于线性系统状态空间模型的最优递归估计算法&#xff0c;由鲁道夫・E・卡尔曼于 1960 年提出。其核心思想是通过融合系统动态模型预测值与传感器观测值&#xff0c;在最小均方误差准则下实现对系统状态的实时…...

【比赛真题解析】混合可乐

这次给大家分享一道比赛题:混合可乐。 洛谷链接:U561549 混合可乐 【题目描述】 Jimmy 最近沉迷于可乐中无法自拔。 为了调配出他心目中最完美的可乐,Jimmy买来了三瓶不同品牌的可乐,然后立马喝掉了一些(他实在是忍不住了),所以 第一瓶可口可乐最大容量为 a 升,剩余 …...

[论文阅读]BadPrompt: Backdoor Attacks on Continuous Prompts

BadPrompt: Backdoor Attacks on Continuous Prompts BadPrompt | Proceedings of the 36th International Conference on Neural Information Processing Systems 36th Conference on Neural Information Processing Systems (NeurIPS 2022) 如图1a&#xff0c;关注的是连续…...

DeepSeek 实现趣味心理测试应用开发教程

一、趣味心理测试应用简介 趣味心理测试是一种通过简单的问题或互动&#xff0c;为用户提供心理特征分析的方式。它通常包含以下功能&#xff1a; 测试题目展示&#xff1a;以问答形式呈现心理测试题。用户行为分析&#xff1a;根据用户的回答或选择&#xff0c;分析心理特征…...