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

Git合并删除原理

如果有 A 分支,从 A 分支上新建 B 分支,B 分支做出修改合并到 A 分支,然后删除 B 分支,A 分支还有没有 B 分支修改的内容

关键原理: 合并的本质是提交历史的整合

1. 合并操作会将 B 的修改永久写入 A 的历史 
   当 B 分支的修改被合并到 A 分支时,Git 会做以下两件事之一:  
   快进合并(Fast-Forward)(若 A 分支未更新):直接将 A 分支的指针移动到 B 分支的最新提交。  
   生成合并提交(若 A 分支有更新):创建一个新的合并提交,将 A 和 B 的修改整合到一起。  

   无论哪种方式,B 分支的修改内容都会成为 A 分支历史的一部分。

2. 删除 B 分支只是删除指针,不影响已合并的提交
   分支本质是提交的指针。删除 B 分支后,仅仅是删除了指向 B 分支最新提交的“标签”,已合并到 A 的提交仍然被 A 分支的提交历史引用,因此这些修改会永久保留。

示例流程:

1. 从 A 创建 B 分支:
   ```bash
   A: C1 → C2
   B: C1 → C2(初始状态)
   ```

2. 在 B 分支提交修改:
   ```bash
   B: C1 → C2 → C3(新增修改)
   ```

3. 将 B 合并到 A:
   ```bash
   # 合并后,A 分支会包含 C3 的修改
   A: C1 → C2 → C3(快进合并)
   # 或
   A: C1 → C2 → C4(合并提交,包含 C3 的内容)
   ```

4. 删除 B 分支:
   ```bash
   # 删除 B 后,A 仍保留 C3 或 C4 的内容
   ```

 验证方法:

- **查看 A 分支的提交历史**:  
  ```bash
  git checkout A
  git log --oneline
  # 可以看到 B 分支的提交(如 C3 或合并提交 C4)
  ```

- **检查文件内容**:  
  B 分支修改的文件在 A 分支中仍然存在。

---

### 特殊情况:**未合并的提交会丢失**
如果 B 分支有未合并到 A 的提交(例如合并后又新增了提交),这些提交会随着 B 分支的删除变为“悬空对象”,最终可能被 Git 垃圾回收清理。例如:
```bash
# 合并后,B 分支继续开发:
B: C1 → C2 → C3(已合并到 A) → C4(未合并)
# 删除 B 后,C4 会丢失,但 C3 仍然在 A 分支中保留。
```

 结论:
A 分支会保留所有已合并的 B 分支内容**。  
仅 **未合并的提交可能丢失**,但这类提交本身未被整合到 A 分支中。  
合并后删除 B 分支是安全的常见操作,不会影响 A 分支的完整性。

相关文章:

Git合并删除原理

如果有 A 分支,从 A 分支上新建 B 分支,B 分支做出修改合并到 A 分支,然后删除 B 分支,A 分支还有没有 B 分支修改的内容 关键原理: 合并的本质是提交历史的整合 1. 合并操作会将 B 的修改永久写入 A 的历史 当 …...

Git 是什么

第一步:想象一个场景——写作文的烦恼 假设你在电脑上写一篇作文,反复修改了好几次。突然发现 ​改错了 想回到之前的某版,但你已经覆盖保存了。这时候你可能会想: 😭 “要是能回到昨天的版本就好了!”&a…...

基于javaweb的SpringBoot智能无人仓库管理设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

python处理音频相关的库

1 音频信号采集与播放 pyaudio import sys import pyaudio import wave import timeCHUNK 1024 FORMAT pyaudio.paInt16 CHANNELS 1#仅支持单声道 RATE 16000 RECORD_SECONDS 3#更改录音时长#录音函数,生成wav文件 def record(file_name):try:os.close(file_…...

JNI 本地方法调用 Java 静态方法 和 实例方法对比;通过本地方法创建 Java 对象;本地方法访问 Java 数组元素;本地方法错误返回给 Java

以下是针对 Java JNI 的详细代码示例和对比分析: 一、调用 Java 静态方法 vs 实例方法 Java 示例类 public class JNIExample {public static void staticMethod(int value) {System.out.println("Static Method: " value);}public void instanceMetho…...

AWS Lambda 深度解析:构建高效无服务器应用的实战指南

在2025年的云计算生态中,AWS Lambda 作为无服务器计算的代表,以其按需执行、高可扩展性和零运维成本的优势,成为开发者构建现代应用的首选。无论是快速原型开发还是生产级系统,Lambda 都能大幅提升效率。然而,如何充分…...

网络爬虫-2:基础与理论

一.同步加载与异步加载 1.1同步加载定义: 页面所有内容一起加载出来,当某一个数据加载有问题,整个页面就不会加载出来(如HiFiNi音乐网站),所以又叫阻塞模式 1.2爬取步骤: 看netword->document 2.1异步加载定义: 数据是分开加载的,当某一份数据有异常时,不影响其他数据…...

从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.1.2多头注意力扩展与掩码机制(因果掩码与填充掩码)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 2.1.2 多头注意力扩展与掩码机制(`因果掩码与填充掩码`)1. 多头注意力机制:分治策略的数学实现1.1 多头注意力核心公式2. 逐行代码实现2.1 多头拆分与合并3. 掩码机制:注意力控制的核心技术3.1 因果…...

Oracle 19C 备份

在 Oracle 19c 中,备份数据库通常使用 RMAN(Recovery Manager) 工具,它是 Oracle 提供的官方备份和恢复工具。以下是通过 RMAN 备份 Oracle 19c 数据库的详细步骤和命令。 一、RMAN 基本概念 RMAN 是 Oracle 的备份和恢复工具&am…...

[项目]基于FreeRTOS的STM32四轴飞行器: 十一.MPU6050配置与读取

基于FreeRTOS的STM32四轴飞行器: 十一.MPU6050 一.芯片介绍二.配置I2C三.编写驱动四.读取任务的测试五.MPU6050六轴数据的校准 一.芯片介绍 芯片应该放置在PCB中间,X Y轴原点,敏感度131表示范围越小越灵敏。理想状态放置在地面上X,Y&#xf…...

后端学习day1-Spring(八股)--还剩9个没看

一、Spring 1.请你说说Spring的核心是什么 参考答案 Spring框架包含众多模块,如Core、Testing、Data Access、Web Servlet等,其中Core是整个Spring框架的核心模块。Core模块提供了IoC容器、AOP功能、数据绑定、类型转换等一系列的基础功能,…...

【赵渝强老师】在Docker中运行达梦数据库

Docker是一个客户端服务器(Client-Server)架构。Docker客户端和Docker守护进程交流,而Docker的守护进程是运作Docker的核心,起着非常重要的作用(如构建、运行和分发Docker容器等)。达梦官方提供了DM 8在Doc…...

Python电影市场特征:AR模型时间序列趋势预测、热图可视化评分影响分析IMDb数据|附数据代码

原文链接:https://tecdat.cn/?p41214 分析师:Zhiheng Lin 在数字时代,电影产业的数据分析已成为洞察市场趋势与用户偏好的重要工具。本专题合集聚焦印度电影市场,通过IMDb数据集(IMDb Movies Dataset)的深…...

扭蛋机小程序开发,潮玩娱乐消费风口下的机遇

随着Z世代消费能力的提升和盲盒经济的火爆,扭蛋文化正迎来爆发式增长。 扭蛋机作为一种充满惊喜感的消费模式,正从线下走向线上,并借助移动互联网实现了数字化转型。线上扭蛋机小程序不仅延续了传统扭蛋的趣味性,还通过数字化手段…...

网络安全基础:五类安全服务、八种安全机制与OSI七层模型的全面解析

目录 引言 五类安全服务 2.1 认证服务 2.2 访问控制 2.3 数据保密性 2.4 数据完整性 2.5 不可否认性 八种安全机制 3.1 加密机制 3.2 数字签名 3.3 访问控制机制 3.4 数据完整性机制 3.5 认证交换机制 3.6 流量填充机制 3.7 路由控制机制 3.8 公证机制 OSI七层…...

各类神经网络学习:(五)LSTM 长短期记忆(上集),结构详解

上一篇下一篇RNN(下集)待编写 LSTM(长短期记忆) 参考知乎文章《人人都能看懂的LSTM介绍及反向传播算法推导(非常详细) - 知乎》,部分图片也进行了引用。 参考视频教程《3.结合例子理解LSTM_哔哩…...

Python项目-基于Python的网络爬虫与数据可视化系统

1. 项目简介 在当今数据驱动的时代,网络爬虫和数据可视化已成为获取、分析和展示信息的重要工具。本文将详细介绍如何使用Python构建一个完整的网络爬虫与数据可视化系统,该系统能够自动从互联网收集数据,进行处理分析,并通过直观…...

Spring Boot 自定义 Starter 组件的技术指南

1、简述 Spring Boot 通过 Starter 机制,让开发者可以快速集成第三方组件。在企业级开发中,我们常常需要封装自己的 Starter 组件,以提高代码复用性,简化配置,并实现可插拔的模块化开发。 Spring Boot Starter 机制 …...

计算机二级WPS Office第九套WPS演示

解题过程...

计算机网络-2 物理层

【考纲内容】 (一)通信基础 信道、信号、带宽、码元、波特、速率、信源与信宿等基本概念; 奈奎斯特定理与香农定理;编码与调制; 电路交换、报文交换与分组交换;数据报与虚电路① 视频讲解 (二…...

三分钟掌握音频提取 | 在 Rust 中优雅地处理视频音频

前言 在多媒体开发中,从视频中提取音频是一个常见需求。比如,你可能需要分离背景音乐来单独欣赏,或者提取对白用于语音分析,甚至为视频生成字幕。无论目的如何,音频提取都是多媒体处理中的基础操作。 传统上&#xf…...

Redis集群哨兵相关面试题

目录 1.Redis 主从复制的实现原理是什么? 详解 补充增量同步 replication buffer repl backlog buffer 2.Redis 主从复制的常见拓扑结构有哪些? 3.Redis 复制延迟的常见原因有哪些? 4.Redis 的哨兵机制是什么? 主观下线和客观下线 哨兵leader如何选出来的&#x…...

Shopify Checkout UI Extensions

结账界面的UI扩展允许应用开发者构建自定义功能,商家可以在结账流程的定义点安装,包括产品信息、运输、支付、订单摘要和Shop Pay。 Shopify官方在去年2024年使用结账扩展取代了checkout.liquid,并将于2025年8月28日彻底停用checkout.liquid…...

Perl 环境安装指南

Perl 环境安装指南 引言 Perl是一种广泛使用的解释型、动态编程语言,以其强大的文本处理能力和灵活性著称。本文将为您详细介绍Perl环境的安装过程,包括系统要求、安装步骤以及注意事项。 系统要求 在安装Perl之前,请确保您的计算机满足以下基本要求: 操作系统:Window…...

MOSN(Modular Open Smart Network)-04-TLS 安全链路

前言 大家好,我是老马。 sofastack 其实出来很久了,第一次应该是在 2022 年左右开始关注,但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFAStack-00-sofa 技术栈概览 MOSN(Modular O…...

Softmax 回归 + 损失函数 + 图片分类数据集

Softmax 回归 softmax 回归是机器学习另外一个非常经典且重要的模型,是一个分类问题。 下面先解释一下分类和回归的区别: 简单来说,分类问题从回归的单输出变成了多输出,输出的个数等于类别的个数。 实际上,对于分…...

重温Ubuntu 24.04 LTS

用户调整 # 创建新用户 sudo adduser newusername # 设置新用户的密码 sudo passwd newusername # 将新用户添加到 sudo 组 sudo usermod -aG sudo newusername # 修改ssh访问权限 sudo nano /etc/ssh/sshd_config # 将新用户加入,此时root将无法访问 AllowUsers n…...

FreeRTOS学习(十):任务调度器挂起与恢复机制详解

FreeRTOS学习(十):任务调度器挂起与恢复机制详解 文章目录 FreeRTOS学习(十):任务调度器挂起与恢复机制详解简介一、 任务挂起与恢复的API函数1.1 任务挂起函数1.2 任务恢复函数 二、重要特性与临界区的区别…...

【C++】内存模型分析

在 C 语言中,程序运行时的内存通常被划分为以下几个区域: 代码区(Text Segment)常量区(Constant Segment)全局/静态区(Data Segment,包含静态数据段和 BSS 段)堆区&…...

Vue2+OpenLayers携带请求头加载第三方瓦片数据

目录 一、案例截图 二、安装OpenLayers库 三、代码实现 一、案例截图 在对接一些第三方GIS地图的时候,需要携带请求头来验证身份,从而获取相应的瓦片数据,这时候我们需要改造一下WMTS服务的调用方式,效果如图所示: 二、安装OpenLayers库 npm install ol 三、代码实现…...