Git | 分支管理

Git | 分支管理

文章目录

  • Git | 分支管理
    • 1、理解分支
    • 2、创建分支&&切换分支
    • 3、合并分支
    • 4、删除分支
    • 5、合并冲突
    • 6、分支管理策略
      • 合并分支模式
      • 实际工作中分支策略
      • bug分支
      • 删除临时分支

1、理解分支

分支就类似分身。

  1. 在版本回退中,每次提交Git都会将修改以git对象的形式串联成一条时间线/分支。

  2. 只有一条默认的时间线,这个分支就叫master分支

  3. HEAD并不严格指向提交,而是指向分支,如果当前的分支是master,那么就会有下边的情况在这里插入图片描述

  4. 每次提交master都会向前移动

2、创建分支&&切换分支

  1. 查看当前本地分支:git branch

    HEAD指针指向:master

  2. 新建分支dev:git branch dev

  3. 查看当前分支:git branch

  4. 切换到master分支:git checkout dev

    HEAD指针指向:dev
    在这里插入图片描述

3、合并分支

比如dev分支中ReadMe后边追加了一行,i am coding,之后想要合并到Master上。

说明:为了避免合并冲突,一般会先提交,之后将master分支合并到dev上边,看是否有冲突,有则解决,无则继续操作。

4、删除分支

合并完成后dev分支没用就可以被删除掉。

如果想要删除,我们需要在其他分支上,如master分支

  1. 查看当前分支:git branch
  2. 切换到Master分支:git checkout master
  3. 删除分支:git branch -D dev
  4. 再次查看分支,发现已被删除:git branch
    在这里插入图片描述

5、合并冲突

在实际分支合并的时候,可能存在代码冲突的问题。

例如,现在master分支和dev分支分别对ReadMe文件进行修改并提交,dev分支在原文本后边添加i am coding,master 在文本后边添加finish并且分别add和commit,再尝试将dev分支合并至master分支时就会出现合并冲突的情况:

  1. dev分支下修改并提交:在这里插入图片描述

  2. 切换至master分支下修改并提交:在这里插入图片描述

  3. 在Master分支下合并dev分支:可以看到冲突在ReadMe文件在这里插入图片描述

  4. 我们查看ReadMe文件在这里插入图片描述

    其中<<<到===之间就是当前分支上的代码,后边的是dev分支上的代码,冲突的都在这里。

    我们需要手动决定到底要怎么决定

  5. 假设我们保留i am coding,把其他不需要的删除,还需要add和commit操作在这里插入图片描述

    此时master分支是最新的提交,dev还是原来的

可以看一下日志:

git log --graph --pretty=oneline --abbrev-commit 在这里插入图片描述

也可以证明我们刚刚的提交是merge的提交

另外合并完成之后,dev分支不使用了就可以删除:(删除dev分支就需要让HEAD指针指向别的分支)

在这里插入图片描述

6、分支管理策略

合并分支模式

合并分支模式有两种

  1. Fast forward模式 :merge默认情况,这次模式下,我们删除分支,查看分支历史时,就会丢掉分支信息,不知道最新提交是merge进来的还是正常提交的
  2. –no-ff方式:即强制禁用Fast forward模式。使用时注意要让master指向新的提交即使dev分支已经删除,也可以看到当前的提交是merge进来的还是由其他分支合并得到的

例如:

  1. 创建dev2分支,修改ReadMe,commit一次,切换至master分支,合并在这里插入图片描述

  2. 查看日志在这里插入图片描述

  3. 删除dev2分支再次查看日志在这里插入图片描述

    会发现使用禁用ff模式,仍然能看得到怎么来的

分支合并建议:

最好先在自己分支下合并master,有冲突在dev分支解决掉,再去master分支下进行merge【bug分支演示】

注意:合并完之后要进行一次提交

实际工作中分支策略

在这里插入图片描述

bug分支

master分支上有bug时,解决bug的流程:在git中,每个bug都可以通过一个新的临时分支来修复,修复完成之后合并分支,并将临时分支删除。

如果我们正在dev2分支上开发了部分代码,但是还没有提交,遇到bug怎么解决?

不要使用dev进行修理bug,否则就违背了dev分支初衷。

  1. 准备工作:创建dev2分支,并进行修改但不add和commit,切换到master在这里插入图片描述

  2. 如果不想看到,同时防止影响之后bug分支的修复,可以使用git stash命令将它暂时隐藏:在这里插入图片描述
    在这里插入图片描述

    会发现多了stash【只存储已经被git追踪管理的文件】

    再次查看状态,发现不再受原来dev2分支影响在这里插入图片描述

  3. 修复bug在这里插入图片描述

  4. 合并到master上在这里插入图片描述

  5. 切回dev2分支,恢复工作区,再次查看工作区内容:在这里插入图片描述

  6. 开发完dev2,提交后,在dev2分支合并master分支,并解决冲突在这里插入图片描述

  7. 切换到master分支上,进行merge在这里插入图片描述

\解决带有修复bug冲突的文件时,把当前的最好放在解决bug之后

删除临时分支

git branch -d dev2

强制删除:git branch -D dev2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/827299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单学量化——pandas的应用26——sort_values函数5

简单学量化——pandas的应用26——sort_values函数5 sort_values是pandas中的排序函数&#xff0c;语法如下&#xff1a; DataFrame.sort_values(by,axis0,ascendingTrue,inplaceFalse,kindquicksort,na_positionlast, ignore_indexFalse,keyNone) 前面我们学习了by、axis、a…

C++之写时复制(CopyOnWrite)

设计模式专栏&#xff1a;http://t.csdnimg.cn/4j9Cq 目录 1.简介 2.实现原理 3.QString的实现分析 3.1.内部结构 3.2.写入时复制 4.示例分析 5.使用场景 6.总结 1.简介 CopyOnWrite (COW) 是一种编程思想&#xff0c;用于优化内存使用和提高性能。COW 的基本思想是&am…

go的编译以及运行时环境

开篇 很多语言都有自己的运行时环境&#xff0c;go自然也不例外&#xff0c;那么今天我们就来讲讲go语言的运行时环境&#xff01; 不同语言的运行时环境对比 我们都知道Java的运行时环境是jvm &#xff0c;javascript的运行时环境是浏览器内核 Java -->jvm javascript…

FastWiki一分钟本地离线部署本地企业级人工智能客服

介绍 FastWiki是一个开源的企业级人工智能客服系统&#xff0c;它使用了一系列先进的技术和框架来支持其功能。 技术栈 前端框架&#xff1a;React LobeUI TypeScript后端框架&#xff1a;MasaFramework 基于 .NET 8动态函数&#xff1a;基于JavaScript V8引擎实现向量搜索…

物联网配网工具多元化助力腾飞——智能连接,畅享未来

随着物联网技术的迅猛发展&#xff0c;智能插座、蓝牙网关作为其中常见的智能物联设备&#xff0c;无论是功能还是外观都有很大的改进&#xff0c;在智能化越来越普遍的情况下&#xff0c;它们的应用场景也在不断拓宽。对于智能设备而言&#xff0c;配网方式的选择对于设备的成…

Jenkins CI/CD 持续集成专题一 Jenkins的安装和配置

一 jenkins 官方教程 安装Jenkins 二 安装 2.1 安装方式一 通过安装包的package方式安装 第一步下载链接&#xff1a; Download the latest package 第二步操作方式&#xff1a;打开包并按照说明操作即可安装 2.2 安装方式二 brew安装 第一 安装最新版本jenkins brew in…

【Java框架】SpringMVC(二)——SpringMVC数据交互

目录 前后端数据交互RequestMapping注解基于RequestMapping注解设置接口的请求方式RequestMapping注解的常用属性一个方法配置多个接口method属性params属性headers属性consumes属性produces属性 SpringMVC中的参数传递默认单个简单参数默认多个简单参数默认参数中有基本数据类…

山与路远程控制 一个基于electron和golang实现的远控软件

山与路远程控制 &#x1f3a5;项目演示地址 还在制作… ♻️项目基本介绍 山与路远程控制是基于electron(vue3)和golang实现的远程控制软件(项目界面主要模仿向日葵远程软件,如有侵权请告知),代码可能有点臃肿毕竟只花了一周左右写的无聊项目,如果对其感兴趣的大佬可以fork自…

【JavaScriptThreejs】判断路径在二维平面上投影的方向顺逆时针

原理分析 可以将路径每个连续的两点向量叉乘相加&#xff0c;根据正负性判断路径顺逆时针性 当我们计算两个向量的叉积时&#xff0c;结果是一个新的向量&#xff0c;其方向垂直于这两个向量所在的平面&#xff0c;并且其大小与这两个向量构成的平行四边形的面积成正比。这个新…

爱普生RX-8130CE内置电池控制 RTC

特点&#xff1a;(1)封装极小&#xff0c;集成度高RX-8130CE是一个带|2C接口的实时时钟模块&#xff0c;内部集成32.768KHz晶体振荡器。实时时钟功能不仅集成了年、月、日、星期、小时、分、秒的日历和时钟计数器&#xff0c;同时也有时间闹钟、间隔定时器、时间更新中断等功能…

算法练习|Leetcode49字母异位词分词 ,Leetcode128最长连续序列,Leetcode3无重复字符的最长子串,sql总结

目录 一、Leetcode49字母异位词分词题目描述解题思路方法:哈希总结 二、Leetcode128最长连续序列题目描述解题思路方法:总结 三、Leetcode3无重复字符的最长子串题目描述解题思路方法:双指针法总结sql总结 一、Leetcode49字母异位词分词 题目描述 给你一个字符串数组&#xf…

编译支持播放H265的cef控件

接着在上次编译的基础上增加h265支持编译支持视频播放的cef控件&#xff08;h264&#xff09; 测试页面&#xff0c;直接使用cef_enhancement,里边带着的那个html即可&#xff0c;h265视频去这个网站下载elecard,我修改的这个版本参考了里边的修改方式&#xff0c;不过我的这个…

大语言模型(LLM)漏洞爆发,AI模型无一幸免

本文概述了人工智能初创公司Anthropic于2024年04月03日发表的一篇针对人工智能安全的论文&#xff0c;该公司在本论文中宣布的一种新的“越狱”技术&#xff0c;名为Many-shot Jailbreaking&#xff08;多轮越狱&#xff09;。文章详细描述了目前大语言模型&#xff08;LLM&…

CMake 编译项目

一、概述 cmake 是C一个很重要的编译和项目管理工具&#xff0c;我们在git 上以及常见的项目现在多数都是用cmake 管理的&#xff0c;那么我们今天就做一个同时有Opencv和CGAL 以及PCL 的项目。 二、项目管理 重点是CMakeList.txt 1、CMakeList.txt cmake_minimum_requir…

Springboot3集成Web、RedisTemplate、Test和knife4j

本例将展示&#xff0c;如何在Springboot3中完成&#xff1a; Redis功能的Web接口实现构建Redis功能的单元测试knife4j自动化生成文档 Redis功能 Pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

windows SDK编程 --- 消息(3)

前置知识 一、消息的分类 1. 鼠标消息 处理与鼠标交互相关的事件&#xff0c;比如移动、点击和滚动等。例如&#xff1a; WM_MOUSEMOVE: 当鼠标在窗口客户区内移动时发送。WM_LBUTTONDOWN: 当用户按下鼠标左键时发送。WM_LBUTTONUP: 当用户释放鼠标左键时发送。WM_RBUTTOND…

区块链交易所技术开发架构解析 交易所开发团队

区块链交易所是加密货币市场中的关键基础设施之一&#xff0c;它提供了一个平台&#xff0c;让用户可以买卖各种数字资产。而搭建一个功能完善、安全可靠的交易所需要一个复杂的技术开发架构&#xff0c;以及一个协调配合的交易所开发团队。下面我们将分析交易所的技术架构以及…

Elasticsearch:崭新的打分机制 - Learning To Rank (LTR)

警告&#xff1a;“学习排名 (Learning To Rank)” 功能处于技术预览版&#xff0c;可能会在未来版本中更改或删除。 Elastic 将努力解决任何问题&#xff0c;但此功能不受官方 GA 功能的支持 SLA 的约束。 注意&#xff1a;此功能是在版本 8.12.0 中引入的&#xff0c;并且仅适…

Ghost Buster Pro for Mac:强大的系统优化工具

Ghost Buster Pro for Mac是一款功能强大的系统优化工具&#xff0c;专为Mac用户设计&#xff0c;旨在提供全方位的系统清理、优化和维护服务。 Ghost Buster Pro for Mac v3.2.5激活版下载 这款软件拥有出色的垃圾清理能力&#xff0c;能够深度扫描并清除Mac上的无效目录、文件…

个人网站的SEO优化系列——如何实现搜索引擎的收录

如果你自己做了一个网站&#xff0c;并且想让更多的人知道你的网站&#xff0c;那么无非就是两种途径 一、自己进行宣传&#xff0c;或者花钱宣传 二、使用搜索引擎的自然流量 而如果搜索引擎都没有收录你的站点&#xff0c;别说是自然流量&#xff0c;就算是使用特定语句【sit…