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

[Git][分支管理][上]详细讲解

目录

  • 1.理解分支
  • 2.创建分支
  • 3.切换分支
  • 4.合并分支
  • 5.删除分支


1.理解分支

  • 感性理解:分支可以理解为平行宇宙,但是在用户需要的时候,可以将两个平行宇宙合并,此时两个平行宇宙的效果将会"叠加"
  • 理性理解:每次提交,Git都会把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀
    • 截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀
  • HEAD理解HEAD严格来说不是指向提交,⽽是指向mastermaster才是指向提交的
    • 所以HEAD指向的就是当前分⽀
    • 每次提交,master分⽀都会向前移动⼀步
      • 随着用户不断提交,master分⽀的线也越来越⻓
      • HEAD只要⼀直指向master分⽀即可指向当前分⽀
        请添加图片描述

2.创建分支

  • 查看分支git branch
    • *表示当前HEAD指向的分支
    $ git branch
    * master
    
  • 创建分支git branch branch_name
    • 创建好分支之后,Git将会新创建一个指针
    • 此时新创建的指针和master指向同一个修改,即同一个版本
    $ git branch dev
    $ git branchdev
    * master
    
    请添加图片描述

3.切换分支

  • 切换分支git checkout branch_name

  • 将创建分支和切换分支合二为一的命令git checkout -b branch_name

    $ git checkout dev
    Switched to branch 'dev'$ git branch
    * devmaster
    

    请添加图片描述

  • 切换到新的分支后,如果进行独立于的master分支的修改,并进行提交

    • 现象:新的分支有的内容,在master分支里并不存在
    • 原因:两分支指向的提交已经不一样了
      $ cat .git/refs/heads/master
      13204498006394d6067fbc8b6046885c6e5e9649
      $ cat .git/refs/heads/dev
      8ef34a28afd16a7c6f3ad43f136212850205bb22
      
      请添加图片描述

4.合并分支

  • 如果要在master分支上能看到最新的提交,就需要将新的分支合并到master分支
  • 合并分支git merge branch_name
    • 此处的Fast-forward表示快进模式
      • :直接将master指向新分支的当前提交,所以该种合并方式下速度非常快
    • 但并不是每次合并都能Fast-forward
    $ git branchdev
    * master
    $ git merge dev
    Updating 1320449..8ef34a2
    Fast-forwarddev.txt | 1 +1 file changed, 1 insertion(+)create mode 100644 dev.txt
    
    请添加图片描述

5.删除分支

  • 合并完成后,dev分⽀对于用户来说就没⽤了,那么dev分⽀就可以被删除掉

  • 删除分支git branch -d branch_name

    • 注意:如果当前正处于某分⽀下,就不能删除当前分⽀,需要切换到其他分支再删除
      请添加图片描述
  • 因为创建、合并和删除分⽀⾮常快,所以Git⿎励用户使⽤分⽀完成某个任务,合并后再删掉分⽀这和直接在master分⽀上⼯作效果是⼀样的,但过程更安全


相关文章:

[Git][分支管理][上]详细讲解

目录 1.理解分支2.创建分支3.切换分支4.合并分支5.删除分支 1.理解分支 感性理解:分支可以理解为平行宇宙,但是在用户需要的时候,可以将两个平行宇宙合并,此时两个平行宇宙的效果将会"叠加"理性理解:每次提…...

C语言指针(1)

目录 一、内存和地址 1、生活中的例子 2、内存的关系 二、指针变量和地址 1、&符号,%p占位符 2、一个简单的指针代码。 3、理解指针 4、解引用操作符 5、指针变量的大小。 三、指针变量类型的意义 1、指针解引用的作用 2、指针指针 3、指针-指针 4…...

C语言中的指针与数组

C语言中的指针与数组是编程中非常基础且强大的概念,它们之间有着紧密的联系和相互转换的可能性。深入理解这两个概念对于编写高效、可维护的C程序至关重要。以下将详细探讨C语言中的指针与数组,包括它们的基本概念、关系、应用以及一些高级话题。 一、指…...

CentOS7.9升级OpenSSL1.1.1w

下载 https://www.openssl.org/source/old/1.1.1/index.html 安装依赖 yum install gcc libffi-devel zlib* openssl-devel libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc perl make 解压 tar -zxvf openss…...

环境搭建:如何安装和使用 MySQL Connector/J——与 MySQL Community Server 的关系

环境搭建:如何安装和使用 MySQL Connector/J—— MySQL Community Server 的关系 在 Java 项目中,与 MySQL 数据库的交互需要使用 MySQL Connector/J 驱动。本文将介绍 MySQL Connector/J 的作用、安装方法以及与 MySQL Community Server 的关系&#xf…...

SAP 财务管理系统 —— 企业财务智能化的领航者

在当今数字化时代,企业财务管理的智能化已成为推动企业持续增长的关键因素。SAP 财务管理系统通过智能化技术,帮助财务部门提高收入、控制成本并降低财务风险,释放财务数字化转型的价值。财务 ERP 作为 SAP 的核心组成部分,将帮助…...

python通过pyautogui自动给微信聊天窗口发消息

使用py脚本自动给聊天窗口发消息 1.突然的自我2.编写脚本玩一把i.先获取窗口位置ii.模拟聊天iii.疗效不错呢 1.突然的自我 突然想到pyautogui可以做那么事情, 那么是不是可以模拟聊天呢,如果结合现在的大模型chatGPT一边问然后得到结果一边自动和别人聊…...

QML中的Date将时间戳和指定格式时间互转

在QML中,可以通过使用JavaScript来处理日期和时间的转换,其中包括将时间戳转换为指定格式的时间字符串,以及将时间字符串解析为时间戳的操作。 将时间戳转换为指定格式的时间字符串 在QML中,可以通过JavaScript的Date对象来处理…...

C++ new/delete 重载

operator new/delete 重载 语法格式 void *operator new(size_t); void operator delete(void *); void *operator new[](size_t); void operator delete[](void *);#include <iostream> using namespace std;class A { public:// 构造函数A(){// _x1;// _y2;// 在n…...

读取连接中文件流和页面展示base64编码的文件

读取连接中文件流和页面展示base64编码的文件 背景需求从接口处获取base64编码的字节流依赖java 代码 前端展示pdf图片 背景需求 我需要展示一个pdf 文件在页面上&#xff0c;但是我一直没办法将 pdf的下载链接用预览方式展示出来&#xff0c;于是打算讨个巧&#xff0c;直接给…...

【大模型从入门到精通4】openAI API 分类

这里写目录标题 分类理解 SYSTEM 和 USER 在 AI 对话中的角色System MessageUser Message工作原理示例分类示例更多分类示例理论问题理论 分类 理解 SYSTEM 和 USER 在 AI 对话中的角色 在分类任务中&#xff0c;通常需要向模型提供一个需要将其分类到预定义类别中的文本场景…...

仓颉 -- 标识符 , 变量以及数据类型详解

仓颉 – 标识符 , 变量以及数据类型 一. 标识符 1. 普通标识符 由数字 , 字母 , 下划线构成 – cangjie , cangjie_2024由英文字母开头&#xff0c;后接零至多个英文字母、数字或下划线。由一至多个下划线开头&#xff0c;后接一个英文字母&#xff0c;最后可接零至多个英文…...

CC++:贪吃蛇小游戏教程

❀创作不易&#xff0c;关注作者不迷路❀&#x1f600;&#x1f600; 目录 &#x1f600;贪吃蛇简介 &#x1f603;贪吃蛇的实现 &#x1f40d;生成地图 &#x1f40d;生成蛇模块 ❀定义蛇的结构体 ❀初始化蛇的相关信息 ❀初始化食物的相关信息 &#x1f40d;光标定位和…...

C#中投影运算的深入解析与实例应用

文章目录 1、投影运算的基本语法2、投影运算的高级用法3、投影运算在向量空间中的运用4、投影运算在数据库和XML中的实际应用5、投影运算能用于哪些实际场景&#xff1f;6、结论 在C#编程中&#xff0c;投影运算是一种常用的数据操作技术&#xff0c;它可以将一个数据集合转换成…...

HTML+CSS練習---空隙產生記錄

1.第一層和第二層之間的間隙&#xff1a;以為導航欄超過高度朝下擠下來了 2.第2層兩個div中的空隙 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>font-face {f…...

【leetcode】相同的树、另一棵树的子树、翻转二叉树(利用深度优先遍历)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构、LeetCode专栏 &#x1f4da;本系…...

Linux系统窗口水印难点分析

给应用程序加水印是保护数据的一种方式&#xff0c;window上可以通过给进程通过注入的方法给进程的窗口创建一个同大小的副窗口&#xff0c;在副窗口上绘制水印内容&#xff0c;同时设置副窗口透明同时透传事件&#xff0c;这样就可以达到在源窗口上显示水印的效果且不影响程序…...

LabVIEW与CANopen实现自动化生产线的设备控制与数据采集

在某工厂的自动化生产线上&#xff0c;多个设备通过CANopen网络进行通信和控制。这些设备包括传感器、执行器和PLC&#xff0c;它们共同负责监测和控制生产过程中的关键参数&#xff0c;如温度、压力、速度等。为了实现对整个生产线的集中监控和管理&#xff0c;工厂决定使用La…...

吃惊!这个Windows双系统方法逆天了|UEFI篇

前言 最近小白在折腾别的系统教程&#xff0c;偶然间发现居然有一个很nice的Windows双系统教程。于是于是&#xff0c;果断尝试了一下&#xff0c;发现真的很可行&#xff01; 这个双系统的办法并不需要使用到WinPE系统&#xff0c;因此并不需要使用到U盘&#xff0c;只需要在…...

【C语言基础】C语言试题复习

1. 执行下面的程序段后&#xff0c;k 的值是_______。 int k1,n325; do { k*n%10;n/10;}while(n); 解析&#xff1a; 给定 n 325 和初始 k 1&#xff0c;代码中的循环将会进行如下操作&#xff1a; 第一次循环:n % 10 得到 5&#xff0c;因此 k * 5&#xff0c;即 k 1 * 5 …...

性价比高可代理的油烟分离油烟机的厂家

最近跟10多个开厨电店的老板喝茶&#xff0c;一半人唉声叹气&#xff1a;去年赚的钱全压库存里了&#xff0c;3个做了十几年的老老板说&#xff0c;再找不到好产品&#xff0c;今年打算把店转了。为啥好好的店做成这样&#xff1f;说白了就是选品选错了&#xff0c;风口变了&am…...

ScrollNice:用虚拟滚动区域替代鼠标滚轮的Windows效率工具

1. 项目概述&#xff1a;当鼠标滚轮失灵时&#xff0c;我们如何优雅地“滚动”&#xff1f;作为一名长期与代码和文档打交道的开发者&#xff0c;我深知一个顺手的鼠标滚轮有多重要。但现实往往很骨感——无论是用了多年的老鼠标滚轮开始“打滑”&#xff0c;还是在某些需要单手…...

Linux下Cursor AI编辑器自动化安装脚本设计与实现

1. 项目概述&#xff1a;为什么我们需要一个Cursor的Linux安装脚本如果你是一个在Linux环境下工作的开发者&#xff0c;并且对AI辅助编程工具感兴趣&#xff0c;那么Cursor这个名字你一定不陌生。作为一款集成了强大AI能力的代码编辑器&#xff0c;它正迅速成为许多程序员的新宠…...

CM-GAI:融合最优传输与连续介质力学的物理约束生成模型

1. 项目概述&#xff1a;当连续介质力学遇见最优传输在工程与材料科学的深水区&#xff0c;我们常常面临一个令人头疼的“数据荒”问题&#xff1a;极端条件下的物理场数据&#xff0c;比如材料在接近熔点的应力-应变行为&#xff0c;或者结构在超高冲击速度下的瞬态变形&#…...

STM32F4 SPI DMA实战:用CubeMX和HAL库5分钟搞定高速数据传输(附避坑指南)

STM32F4 SPI DMA实战&#xff1a;CubeMXHAL库5分钟极速配置指南 在嵌入式开发中&#xff0c;SPIDMA的组合堪称数据传输的"黄金搭档"——既能享受SPI接口的高速特性&#xff0c;又能通过DMA解放CPU资源。但传统基于寄存器的手动配置方式&#xff0c;往往让开发者陷入繁…...

从ARM到FPGA:手把手教你用Vivado双口RAM IP核搭建跨芯片通信桥

从ARM到FPGA&#xff1a;构建高性能双口RAM通信桥的工程实践 在异构计算架构中&#xff0c;FPGA与处理器的协同工作已成为提升系统性能的关键方案。Xilinx Vivado工具链中的双口RAM IP核&#xff0c;为解决跨芯片数据交换提供了硬件级的优雅实现。本文将深入探讨如何将这一技术…...

CSS如何实现一致的圆角半径设计_通过CSS变量存储border-radius

能&#xff0c;但需注意变量作用域、fallback机制及单位完整性&#xff1b;推荐:root定义基础值并用var(--radius-md, 8px)&#xff0c;避免嵌套覆盖与无单位变量&#xff0c;旧浏览器需前置静态值。border-radius 用 CSS 变量统一管理&#xff0c;真能省事&#xff1f;能&…...

RO-ViT:区域感知预训练如何革新开放词汇目标检测

1. 项目概述&#xff1a;从“闭门造车”到“开箱即用”的视觉检测新范式在计算机视觉领域&#xff0c;目标检测一直是个硬骨头。传统的检测模型&#xff0c;比如我们熟悉的Faster R-CNN、YOLO系列&#xff0c;都遵循一个“闭集”范式&#xff1a;模型在训练时见过多少类物体&am…...

Lua RTOS在ESP32上的应用:从架构解析到物联网项目实战

1. 项目概述&#xff1a;当Lua遇上RTOS&#xff0c;为ESP32注入灵魂 如果你玩过ESP32&#xff0c;大概率用过Arduino框架或者乐鑫官方的ESP-IDF。前者简单易上手&#xff0c;但深度定制和实时性有限&#xff1b;后者功能强大专业&#xff0c;但C语言开发门槛不低&#xff0c;调…...

LLM推理中的动态显存卸载技术解析

1. LLM推理中的内存挑战与卸载技术本质在部署百亿参数级别的大型语言模型(LLM)时&#xff0c;GPU显存容量往往成为关键瓶颈。以主流的NVIDIA A100 40GB显卡为例&#xff0c;单卡甚至无法完整加载一个13B参数的模型&#xff08;按FP16精度计算需要约26GB显存&#xff0c;尚未考虑…...