【Git】“分支” 如何管理和使用?这一篇就够了~

article/2025/11/8 16:24:07

目录

一、什么是分支?

二、分支的操作

2.1、查看分支

2.2、创建分支

2.3、切换分支 和 修改分支

2.4、合并分支

2.4.1、正常合并

2.4.2、合并冲突

三、创建分支和切换分支的底层原理


一、什么是分支?

        在版本控制中,我们可以针对每个任务创建一个单独的分支,可以让我们的工作从主线上分离开,在开发自己的分支的同时,不会影响主线的分支运行;(分支的底层通过指针进行引用的)

例如下图:

解释: 

        红色框便是主线分支,其他分支的创建通过复制主线的任务,进行单独修改,再修改完成以后再合并到主线上;

好处:

        通过分支,可以同时并行开发多个功能,十分高效,并且每个分支互不影响,即使某一分支开发失败,也可以将其删除后重新开发;


二、分支的操作

2.1、查看分支

git branch -v

执行效果:

 

这里可以看出,当前只有这么一个主分支;

        如果当前这个主分支里面东西写错了,需要紧急修复怎么办?这时候就可以创建分支,来进行合并,怎么创建分支呢?往下看~

2.2、创建分支

git branch 分支名

例如我想创建一个名字为hot-fix这样一个分支:

接着查看分支:

解释: 

        1.创建好这样一个分支就意味着开辟了一个新的空间,并将主分支master上的数据都拷贝到了这个分支上;

        2.master 分支被 绿色标记 是因为当前所在分支为master;

2.3、切换分支 和 修改分支

语法如下:

//切换分支
git checkout 要切换到的分支名

先来看看当前分支是什么:

如果我们需要修改已经创建好的 hot-fix 分支上的内容,该如何操作?往下走

首先通过 git checkout 切换到hot-fix分支上:

        这个时候就可以通过vim来修改当前分支上的文件(这里我已经创建好一个test.txt文件)。修改完后,通过 git status 可以观察test.txt文件被标红,说明已经在工作区被修改,如下:

 

 这时候,如果你觉得这个分支修改的很好,那么你就可以通过 git add 添加到暂存区,最后通过 git commit 提交到本地库(注意,即使提交到本地库也不会影响到master分支),如下:

 解释:

        HEDA -> 这里指向hot-fix,以及后面的代码,表示当前在hot-fix分支下,提交到本地库了一个名为"hot-fix first commit"这样一个任务;

切换回master分支,再查看test.txt文件就会发现,文件的内容并没有被修改,那怎么做才能合并到master分支呢?往下看~

2.4、合并分支

git merge 要合并的分支名

通过这个操作,就可以将想要合并的分支合并到当前分支上~

2.4.1、正常合并

例如,将hot-fix分支合并到master分支上,那么你就需要先切换到master分支上,再如输入指令,如下:

        为什么能正常合并呢?这是因为你在创建hot-fix分支以后,没有对master分支进行修改,若进行修改,并提交到本地库,则会冲突合并(下面会讲到);

2.4.2、合并冲突

怎么产生合并冲突?

        经过上面的操作后,此时master分支和hot-fix分支的内容是一样的,这个时候,如果对master分支中的test.txt进行修改,并提交本地库,接着切换分支到hot-fix,对文件test.txt进行修改,并提交本地库,最后切换分支到master,合并hot-fix分支,这个时候就会产生冲突如下:

 通过查看本地库状态可以看到如下:

如何解决冲突?         

        这里就显示有两个分支待修改,主机自然就不知道你要保存哪一个;所以想要她两合并,你需要手动修改,通过vim修改成最后你需要保存的数据,修改完后,提交到本地库即可;注意!提交的时候不能带文件名,否则会报错,如下:


三、创建分支和切换分支的底层原理

原本只有一条master分支:

现在又创建了一个hot-fix分支,并且还是从third的下创建的分支,并对该分支进行了修改:

这时,想要从master分支上切换到hot-fix分支上,本质就是修改head指针的指向:

 解释:

        master 和 hot-fix 都是指向具体版本记录的指针;当前所在分支是由HEAD决定的(HEAD指向哪一个分支,当前就在哪一个分支上),所以创建分支本质上就是创建指针;



http://chatgpt.dhexx.cn/article/9AJMNJqy.shtml

相关文章

管理Git的分支

目录 一、本地分支(local branches)管理 1.1 查看和建立分支( git branch) 1.2 分支中提交的浏览与比较(git log) 1.3 切换当前分支(git switch)与合并分支(git mer…

常用的git分支管理方法都在这了

一、分支管理定义 几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线,使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作,Git 分支实际上是指向更改快照的指针。 其作用显然…

前端安全之xss与xsrf

提到前端安全,往往离不开xss(跨站脚本攻击)、xsrf(跨站伪造请求),在此记录一下关于前端安全的学习过程。 什么是xss? 跨站脚本攻击(Cross Site Scripting),为了不和css(层叠样式表)混淆,故记为xss。其原理是利用用户…

前端安全问题及防范

目录 XSS攻击反射型存储型DOM型总结 CSRF攻击点击劫持CDN带来的风险文件上传漏洞本地存储信息泄露 XSS攻击 XSS(Cross-Site Scripting,跨站脚本),是比较常见的安全漏洞问题,其主要的攻击方式是通过表单或者页面url参数来注入一些可执行的代码&#xff0…

前端安全之csp

最近前端项目被白帽子使用appscan扫到安全漏洞,老大勒令我们抓紧修复,我们先来看两个级别比较低的漏洞 看到这儿对于我个渣渣前端来说是懵逼的,难道我设置一下http header 就ok了 简单来介绍下什么叫做csp内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型…

Web前端安全系列之:XSS攻防及Vue防御(万字长文)

关注公众号 笑果杂谈 前言 Web 安全的兴起 Web 攻击技术的发展也可以分为几个阶段。在 Web 1.0 时代,人们更多的是关注服务器端 动态脚本的安全问题,比如将一个可执行脚本(俗称 webshell)上传到服务器上,从而获得权…

前端安全:CSRF、XSS该怎么防御?

近几年随着业务的不断发展,前端随之面临很多安全挑战。我们在日常开发中也需要不断预防和修复安全漏洞。接下来,梳理一些场景的前端安全问题和对应的解决方案。 XSS攻击介绍 XSS是后端的责任,后端应该在用户提交数据的接口对隐私敏感的数据…

如何解决Web前端安全问题?

我国网络技术水平的提升,带动着WEB前端业务量的显著增长,人们对于网络服务的需求也日益复杂,与此同时,越来越多的黑客出现,其攻击水平也有了明显提升,WEB前端也成为了众多黑客进行网络攻击的主要目标。 因…

前端安全问题的解决方法

目录 前言: 1.常见的安全性问题 2.XSS攻击的解释和解决方法 2.1 XSS攻击是什么: 2.2 经常出现的原因:用户输入,如input框 2.3 防御方式: 3.CSRF(跨站请求伪造)的解释和解决方法 3.1 是什么…

前端常见的安全问题

一、XSS (Cross-Site Scripting)跨站脚本攻击 通常指通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,获取用户信息、控制用户浏览器等的一种攻击 分类:持久性(存储型xss&…

前端常见安全性问题

文章目录 一、常见的安全性问题二、XXS攻击(Cross Site Scripting)(跨站脚本攻击)三、CSRF安全漏洞(跨站请求伪造)四、文件上传漏洞五、限制URL访问,越权访问六、不安全的加密存储七、SQL注入攻…

前端WEB安全

一、浏览器安全 首先了解前端web安全知识,比不可绕开的基础就是同源策略了,同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功…

前端安全问题以及解决方案汇总

随着大前端的快速发展,各种技术不断更新,前端的安全问题也值得我们重视。今天我们来聊一聊前端常见的7个安全方面问题: 1.iframe 2.opener 3.CSRF(跨站请求伪造) 4.XSS(跨站脚本攻击) 5.ClickJa…

浅谈前端安全

1 什么是前端安全? 所有发生在浏览器、单页面应用、Web页面当中的安全问题都算是算是“前端安全问题”。或者就是说所有需要前端开发人员去修复的问题都属于前端安全问题。 2 前端目前存在哪些安全问题 2.1 xss(Cross Site Scripting)跨站…

数据结构中头结点的作用

数据结构中,在单链表的开始结点之前附设一个类型相同的结点,称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结点的指针(即第一个元素结点的存储位置)。 作用 1、防止单链表是空的而设的…

链表的首元结点、头结点、头指针的区别(图示)

1、首元结点:就是指链表中存储第一个数据元素a1的结点。 2、头结点:它是在首元结点之前附设的一个节点,其指针域指向首元结点。头结点的数据域可以不存储任何信息,也可以存储与数据元素类型的其他附加信息,例如&#…

单链表两种结构:头指针,头结点与首元结点辨析

要区分头指针,头结点,首元结点这几个概念分别指什么,需要结构图来帮助阐释。 我们先来看一种不太严谨的表现形式。 1->2->3->4->NULL 头结点这个名词很具有迷惑性。比如这张图中,刚接触的新手很容易以为1就是来自头…

【头指针,头结点、首元节点】

链表中第一个结点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行了。之后的每一个结点,其实就是上一个的后继指针指向的位置。 这里有个地方要注意,就是对头指针概念的理解,这个很重要。“链表中第一个结点的存…

单链表:头指针 头结点 首元结点区别与联系

单链表组成:头指针头结点第一个结点第二个结点第三个结点.............第N个结点。 注意下图中:首元结点就是第一个结点。 头指针:作用:1.头指针的名字就是本链表的名字 2.头指针也是一个指针,存放头节点地址 头结…

链表:头结点

简介: 头结点的数据域可以不存储任何信息,头结点的指针域存储指向第一个结点的指针(即第一个元素结点的存储位置)。头结点的作用是使所有链表(包括空表)的头指针非空,并使对单链表的插入、删除操…