Git | 分支管理

news2024/11/17 1:40:57

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.coloradmin.cn/o/1614775.html

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

相关文章

.net core webapi 高颜值的接口管理系统界面取代swagger,更好调试和查看

.net core webapi 高颜值的接口管理系统界面取代swagger&#xff0c;更好调试和查看 安装 dotnet add package IGeekFan.AspNetCore.Knife4jUI --version 0.0.16配置文档&#xff1a; 配置起始页 builder.Services.AddSwaggerGen(c > {// 配置 Swagger 文档相关信息c.Swa…

圣若热城堡、贝伦塔、热罗尼莫斯修道院 BIBM 2024在里斯本等你

会议之眼 快讯 2024年BIBM&#xff08;IEEE International Conference on Bioinformatics and Biomedicine&#xff09;即IEEE生物信息学与生物医学国际会议将于 2024年 12月3日-6日在葡萄牙里斯本举行&#xff01;这个会议由IEEE&#xff08;电气和电子工程师协会&#xff09…

CCF PTA 2023年11月C++卫星发射

【问题描述】 在 2050 年卫星发射技术已经得到极大发展&#xff0c;我国将援助 A 国建立远轨道卫星导航系统&#xff0c;该项目计划第 一个天发射一颗卫星&#xff1b;之后两天&#xff08;第二天和第三天&#xff09;&#xff0c;每天发射两颗卫星&#xff1b;之后三天&#…

牛客 NC205 跳跃游戏(三)【中等 贪心 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/14abdfaf0ec4419cbc722decc709938b 思路 参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可*** …

面向对象设计模式之概念

设计模式系列的观点结合了《HeadFirst设计模式》(中文版)以及《设计模式&#xff1a;可复用面向对象软件的基础》两本书的知识&#xff0c;以及Sunny(刘伟)的博客 《HeadFirst设计模式》(中文版)&#xff1a; 百度网盘链接&#xff1a;https://pan.baidu.com/s/1osvnUGZZREm8Jb…

abp+ef中,默认配置includeAllEntities=false遇到得坑

在一次偶然使用includeAllEntities=false时,有些实体主键引用得Entity<guid>,没有使用聚合根FullAuditedAggregateRoot等,导致服务中注入这些仓储时,一直报错 配置如下: 实体如下 报错如下: {"error": {"code": null,"message": &q…

GPT与Python结合应用于遥感降水数据处理、ERA5大气再分析数据的统计分析、干旱监测及风能和太阳能资源评估

如何结合最新AI模型与Python技术处理和分析气候数据。介绍包括GPT-4等先进AI工具&#xff0c;旨在帮助大家掌握这些工具的功能及应用范围。内容覆盖使用GPT处理数据、生成论文摘要、文献综述、技术方法分析等实战案例&#xff0c;能够将AI技术广泛应用于科研工作。特别关注将GP…

Leetcode138_随机链表的复制

1.leetcode原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2.题目描述 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 …

java新冠病毒密接者跟踪系统(springboot+mysql源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的新冠病毒密接者跟踪系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 新冠病毒密接者跟…

【C++】priority_queue(优先级队列介绍、仿函数控制大堆小堆、模拟实现)

一、优先级队列 1.1介绍 优先级队列&#xff08;Priority Queue&#xff09;是一种特殊的数据结构&#xff0c;其并不满足队列先进先出的原则&#xff0c;它结合了队列和堆的特点&#xff0c;允许我们在其中插入元素&#xff0c;并且能够保证任何时候提取出的元素都是当前队列…

网络编程学习——IO多路复用

目录 ​编辑 一&#xff0c;多路复用 1&#xff0c;IO的分类 2&#xff0c;IO的效率 二&#xff0c;Linux环境下实现通信的多路复用 1&#xff0c;select select的特点&#xff1a; 参数&#xff1a; 操作函数&#xff1a; 返回值&#xff1a; 使用select实现网络通信…

面试八股——集合——List

主要问题 数组 如果数组索引从0开始时&#xff0c;数组的寻址方式为&#xff1a; 如果数组索引从1开始时&#xff0c;数组的寻址方式为&#xff1a; 此时对于CPU来说增加了一个减法指令&#xff0c;降低寻址效率。 ArrayList⭐ ArrayList构造函数 尤其说一下第三个构造函数流…

ThreadLocal中为什么使用弱引用

ThreadLocal中为什么使用弱引用 补个概念&#xff1a; ThreadLocalMap中的key就是Entry&#xff0c;Entry是一个弱引用&#xff0c;关联了当前ThreadLocal对象。需要存储的数据为值。调用set方法要传入两个参数ThreadLocal对象和要存入ThreadLocal对象的数据。 如下图&#xf…

MQTT Broker 白皮书:全面实用的 MQTT Broker 选型指南

在智能数字化时代&#xff0c;家居设备、工厂传感器、智能汽车、能源电力计量表等各类设备都已变身为新型的智能终端。为了满足这些海量且持续增长的智能设备之间对于实时、可靠的消息传递的需求&#xff0c;MQTT Broker 消息代理或消息中间件扮演了至关重要的角色。作为新一代…

OSI七层模型、TCP/IP五层模型理解(个人解读,如何理解网络模型)

OSI七层模型 七层模型&#xff0c;亦称OSI&#xff08;Open System Interconnection&#xff09;。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间互联的标准体系&#xff0c;一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模…

react 安装教程

1、安装脚手架 脚手架主要分为三个部分&#xff1a; react:顶级库。 react-dom&#xff1a;运行环境。 react-scripts&#xff1a;运行和打包react应用程序的脚本和配置。 npm install -g create-react-app 2、创建项目 #查看版本号 create-react-app -V #创建项目 creat…

Linux磁盘及读写数据原理/Raid技术/硬软raid及企业案例/磁盘分区环境搭建/格式化磁盘系列-12213字

高薪思维&#xff1a; 怎么才能一直去坚持下去&#xff1f; 1.做这件事情的好处&#xff0c;对自己一直去放大。 2.不做的坏处&#xff0c;并放大 3.学习痛苦&#xff1f;还是去上班&#xff08;餐饮、外卖痛苦&#xff1f;&#xff09; 用比学习更痛苦的事情&#xff0c;去对抗…

记一次普通的单表查询sql优化,去掉文件排序

一现象&#xff1a; 有空观察了线上某个sql语句执行计划&#xff0c;发现在500多毫秒左右&#xff0c;打算进行下优化。 二步骤&#xff1a; 对查询列assessment_periodic_id、assessment_user_id、create_time添加了组合索引并指定了倒叙。加入create_time 使查询结果不需要在…

【华为OD笔试】2024D卷机考套题汇总【不断更新,限时免费】

有LeetCode算法/华为OD考试扣扣交流群可加 948025485 可上全网独家的 欧弟OJ系统 练习华子OD、大厂真题 绿色聊天软件戳 od1441了解算法冲刺训练&#xff08;备注【CSDN】否则不通过&#xff09; 文章目录 2024年4月17日&#xff08;2024D卷&#xff09;2024年4月18日&#xff…

15.C++常用的算法_拷贝和替换算法

文章目录 遍历算法1. copy()代码工程运行结果 2. replace()代码工程运行结果 3. replace_if()代码工程运行结果 4. swap()代码工程运行结果 遍历算法 1. copy() 代码工程 copy()函数不要因为使用而使用#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include&l…