2022新版Git教程 从入门到实战(三)Git分支管理

article/2025/11/8 16:32:20
  • 🐟 个人主页 :https://blog.csdn.net/qq_52007481
  • ⭐个人社区:【小鱼干爱编程】
  • 📰最近专栏:Git教程专栏

文章目录

    • 分支工作的工作流程
    • Git分支管理
      • 分支的好处
    • 前期准备
    • 查看分支
    • 分支创建
    • 分支转换
      • 在新分支中添加记录
      • 切换回`master`分支
    • 分支合并
    • 代码合并冲突解决
      • 分支合并图
    • 删除分支
    • 总结
      • 本章常用命令及其拓展
      • 下一篇文章讲解Git远程仓库的使用

分支工作的工作流程

这是从Git官网截取的一个片段

让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤:

  1. 开发某个网站。
  2. 为实现某个新的用户需求,创建一个分支。
  3. 在这个分支上开展工作。
  4. 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理:
  5. 切换到你的线上分支(production branch)。
  6. 为这个紧急任务新建一个分支,并在其中修复它。
  7. 在测试通过之后,切换回线上分支,然后合并这个修补分支,最后将改动推送到线上分支。
  8. 切换回你最初工作的分支上,继续工作。

Git分支管理

几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作

我们上一章的所有操作一直是在master分支上,版本切换能够让我们明显的认识到master分支是一个类似时间线的分支。
在实际的开发工作中不会直接在项目主分支上进行开发,一般都是新建一个或过多个开发分支,所有的开发都集中到开发分支上,当开发分支开发完成并通过测试就合并到主分支,以一个新的版本发布。

在这里插入图片描述

分支的好处

  • 同同时并行推进多个功能的开发,提高工作效率
  • 各个分支在开发过程中不影响,一个分支开发失败不会影响到其他分支,失败的分支直接删除重新开发就可以

Git 的 master 分支并不是一个特殊分支。 它就跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。

前期准备

在一个空文件里面建立一个fish.txt文本文件,里面写一些内容,初始化本地仓库,提交到仓库
回顾一下命令的适用

git init
git add .
git commint -m'xxx'

准备结果
在这里插入图片描述

查看分支

查看已有的分支和当前所在的分支

git branch
# 或者
git branch -v

git branch命令会列出所有分支,当前分支前面会标一个*

分支创建

Git 是怎么创建新分支的呢? 很简单,它只是为你创建了一个可以移动的新的指针。 比如,创建一个 testing 分支, 你需要使用 git branch < name > 命令

git branch testing
# 此时创建一个名为testing的分支

git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去
此时两个指针(master,testing)指向相同的历史分支,这两个指针各自指向自己所在的分支
同时还有一个HEAD的指针,用来指明当前所在的分支,此时HEAD指向master就代表当前在master分支
在这里插入图片描述
使用git branch查看一下,*在哪里就代表当前在那个分支
在这里插入图片描述

分支转换

要切换到一个已存在的分支,你需要使用 git checkout 命令。 我们现在切换到新创建的 testing 分支去:

git checkout testing

另外因为git checkout既可以恢复工作树文件(撤销操作),又可以切换分支,这样可能会有一些歧义的出现,所以新版本建议适用git switch

git switch testing

通过括号里面的内容也可以进行判断
在这里插入图片描述

在新分支中添加记录

在新的分支中,在新文件家中添加内容‘testing’,并提交到仓库
此时会建立仓库中会出现一个新的记录,效果入下图
在这里插入图片描述

切换回master分支

在这里插入图片描述
此时HEAD指针指向了master,此时在查看fish.txt文件中的内容,就会发现内容已经恢复到原来未修改的状态
在这里插入图片描述

分支合并

我们现在分两种选择,

  • 一、直接将testing分支上的内容合并到master分支,这样不会发生版本冲突的问题
  • 二、在master分支上继续进行修改,然后再选择合并分支,这样会发生版本冲突的问题

我们先进行第一种直接合并分支

git merge testing # 把指定分支合并到当前分支

在这里插入图片描述
此时再查看fish.txt文件中的内容,就会发现原本再testing分支中修改的文件内容出现到了master分支中
这种master分支没有内容改变的合并不会出现冲突的问题。

第二种就是master分支和testing分支都进行了修改,此时在选择合并就会发生冲突
首先需要在在两个分支上分别修改并提交到版本库

  • 在testing分支下向文件中添加testing2222
    在这里插入图片描述
  • 在master分支下向文件中添加master2222
    在这里插入图片描述
    命令的全过程
git switch testing  # 切换到testing分支
vim fish.txt        # 使用vim编译器修改文件内容
git add .           # 添加到暂存区
git commit -m'test2commit' # 提交到版本库
git switch master   # 切换到master分支
vim fish.txt        # 使用vim修改文件内容
git add .           # 提交到暂存区
git commit -m'mastercommit'  # 提交到版本库

在这里插入图片描述
此时合并分支
在这里插入图片描述

冲突(内容):合并fish.txt中的冲突
自动合并失败;修复冲突,然后提交结果

使用 git status也可以查看此时发生冲突的文件
在这里插入图片描述

为什么会发生冲突

其实就是在两个分支中同时修改了同一个文件的内容,在合并时,Git不能够知道你需要那个文件里面的内容,所以就将两个文件修改的内容全部保存下来,然后让你根据自己的需要进行内容的修改,这个也是后面解决代码冲突的基本思路

代码合并冲突解决

发生冲突后,我们先看一下发生冲突的文件内容
在这里插入图片描述
此时会发现文件中有部分数据分别是两个分支中各自添加的内容,使用<<<<<<< ,=======,>>>>>>>区分开来并且还提示那些内容是属于那一个分支的
然后我们修改文件的内容,根据实际需求选择需要的内容,
在这里插入图片描述
解决冲突以后,再进行一次提交

git add .
git commit -'conflict fixed'

在这里插入图片描述
至此冲突就已经解决
如果你想了解这段时间内发生的内容,可以查看具体的日志信息git log

分支合并图

使用该指令git log --graph可以看到分支记录以及图
在这里插入图片描述

删除分支

合并代码以后就可以这个删除开发分支

git branch -d testing

在这里插入图片描述

总结

本章我们学习了Git分支,了解到了分支的优势和Git分支的工作流程,如何创建分支、切换分支、合并分支、解决冲突。希望大家能够认识到分支开发的优势,掌握分支开的常用命令

本章常用命令及其拓展

命令作用
git branch查看分支
git branch -v查看分支
git branch < name >创建分支
git checkout < name >切换分支
git switch < name >切换分支
git checkout -b < name >创建并切换分支
git switch -c < name >创建并切换分支
git merge < name >合并某分支到当前分支
git branch -d < name >删除分支

下一篇文章讲解Git远程仓库的使用

  • 🐟 个人主页 :https://blog.csdn.net/qq_52007481
  • ⭐个人社区:【小鱼干爱编程】
  • 📰最近专栏:Git教程专栏

http://chatgpt.dhexx.cn/article/MIfxuALO.shtml

相关文章

Git 分支管理最佳实践(转载)

前言 Git 是目前最流行的源代码管理工具。大量的软件项目由 GitHub、Bitbucket 和 GitLab 这样的云服务平台或是私有的 Git 仓库来管理。在使用 Git 时通常会遇到的一个问题是采用何种分支管理实践&#xff0c;即如何管理仓库中作用不同的各类分支。和软件开发中的其他实践一样…

Git 分支管理策略汇总

原文链接&#xff1a; Git 分支管理策略 最近&#xff0c;团队新入职了一些小伙伴&#xff0c;在开发过程中&#xff0c;他们问我 Git 分支是如何管理的&#xff0c;以及应该怎么提交代码&#xff1f; 我大概说了一些规则&#xff0c;但仔细想来&#xff0c;好像也并没有形成…

Git分支管理

四、分支管理 分支的存在&#xff0c;极大的强化了不同开发者的协作管理&#xff0c;在一个功能的开发过程中&#xff0c;可以在一个单独的分支上完成&#xff0c;这样不影响主分支的开发&#xff0c;待功能完成后再将分支的内容合并到主分支。 每次提交到分支&#xff0c;Gi…

git的分支管理

这篇文章主要想讲一下git下的分支管理&#xff0c;因为分支管理是你在日常工作中必不可少的一项操作&#xff0c;觉得自己之前了解的不是很多&#xff0c;这次便决定利用一些细碎的时间好好去再次学习巩固一下&#xff0c;初衷也是为了加深自己的理解&#xff0c;便写下此文&am…

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

目录 一、什么是分支&#xff1f; 二、分支的操作 2.1、查看分支 2.2、创建分支 2.3、切换分支 和 修改分支 2.4、合并分支 2.4.1、正常合并 2.4.2、合并冲突 三、创建分支和切换分支的底层原理 一、什么是分支&#xff1f; 在版本控制中&#xff0c;我们可以针对每个任…

管理Git的分支

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

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

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

前端安全之xss与xsrf

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

前端安全问题及防范

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

前端安全之csp

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

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

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

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

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

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

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

前端安全问题的解决方法

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

前端常见的安全问题

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

前端常见安全性问题

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

前端WEB安全

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

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

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

浅谈前端安全

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

数据结构中头结点的作用

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