Git的进阶使用(二)

news2024/12/24 9:10:44

在这里插入图片描述

本篇文章旨在分享本人在学习Git时的随笔记🤩

文章目录

    • 概述
    • 1、Git 分支
      • 1.1 主干分支
      • 1.2 其他分支
        • 1.2.1 创建分支
        • 1.2.2 查看分支
        • 1.2.3 切换分支
        • 1.2.4 删除分支
    • 2、Git 合并
      • 2.1 主干分支
      • 2.2 其他分支
      • 2.3 合并分支
    • 3、Git 冲突
      • 3.1 主干分支
      • 3.2 其他分支
      • 3.3 切换分支 -B1
      • 3.4 切换分支 -B2
      • 3.5 合并分支 -B1
      • 3.6 合并分支 -B2
    • 最后

概述

  在实际的操作中,有些文件可能再不同的场合需要同时使用不同的内容,而且还不能冲突,比如项目的配置文件,我需要本地进行测试,同时还要部署到服务器上进行测试。本地环境和服务器上的环境是不一样的,所以同一个配置文件就需要根据环境的不同,进行不同的修改。

  如果将本地测试环境和服务器测试环境区分开,分别进行文件版本维护,在 Git 软件中,称之为 branch 分支。分支感觉就像树上的分叉一样,会按照不同的路线生长下去。
i5mf4p.png

1、Git 分支

1.1 主干分支

默认情况下,Git 软件中只存在一个分支,也就是主干分支(master 分支)。默认的所有操作本身就都是基于 master 分支完成的。而 master 主干分支在创建版本库时,也就是 git init 时默认就会创建。

1.2 其他分支

如果仅仅是一个分支,在某些情况并不能满足实际的需求,那么就需要创建多个不同的分支。

1.2.1 创建分支

# git branch 分支名称

git branch b1

git branch b2

i5mOuP.png

如图就是创建两个分支,都是基于 master 主干分支为基础的。

1.2.2 查看分支

i5m8et.png

1.2.3 切换分支

# git checkout 分支名称

git checkout b1

i5mrkc.png

此时添加新的文件 b1.txt
i5m3BA.png

然后提交到版本库
i5mR9o.png

此时查看会发现不同分支的版本进度信息发生了改变
i5mgZb.png

1.2.4 删除分支

# git branch -d 分支名称

Git branch -d b2

i5m7ez.png i5mEaw.png

2、Git 合并

无论我们创建多少个分支,都是因为需要在不同的工作环境中进行工作,最后都应该将所有的分支合在一起。形成一个整体。作为项目结果。
i5pADo.png

2.1 主干分支

首先我们先将主干分支的所有文件清空掉
i5pr63.png

在当前主干分支中创建一份文件 master.txt,并提交
i5pxSQ.png

2.2 其他分支

基于主干分支的内容,我们创建其他分支,并直接切换到新的分支

# git chechout -b 分支名称

git checkout -b new_branch

在新的分支中添加新文件 branch.txt

此时切换回主干分支,只有 master.txt 文件。

再切换回 new_branch 分支,branch 文件就又回来了。

2.3 合并分支

这里我们将new_branch分支的文件内容合并到主干分支中。首先先切换回主干分支
i5BGdU.png

然后执行分支合并指令

# git merge 分支名称

git merge new_branch

i5B523.png

此时再次查看文件,就会发现branch.txt文件已经可以看到了。
i5BJvF.png

3、Git 冲突

  在多分支并行处理时,每一个分支可能是基于不同版本的主干分支创建的。如果每隔分支都独立运行而不进行合并,就没有问题,但是如果在后续操作过程中进行合并的话,就有可能产生冲突。比如B1, B2的两个分支都是基于master分支创建出来的。B1分支如果和B2分支修改了同一份文件的话,那么在合并时,以哪一个文件为准呢,这就是所谓的冲突。
i5XyNN.png

3.1 主干分支

i5X4hV.png

首先我们先将主干分支的所哟文件清空掉
i5XAud.png

主干分支添加文件 test.txt,文件内容为空
i5XUHb.png

3.2 其他分支

其他主干分支,创建两个分支 B1,B2
i5Xkkw.png
i5X0pa.png

3.3 切换分支 -B1

i5X2NL.png

切换到 B1 分支,修改文件内容
i5X8e3.png

提交修改后的文件
i5XIay.png

3.4 切换分支 -B2

i5Xrk5.png

切换到 B2 分支,查看文件内容
i5X3B8.png

提交文件
i5XRJZ.png

3.5 合并分支 -B1

i5XmAF.png

切换到 master 主干分支,此时 test.txt 文件内容
在这里插入图片描述
将B1分支合并到主干分支中
i5XprH.png

3.6 合并分支 -B2

i5XgZE.png

因为B2分支也对文件进行了修改,所以如果此时合并B2分支,就会提示冲突
i5XxOC.png

查看文件内容差异
i5XEaX.png

重新提交到 master 主干分支中
i5Xz0t.png

# git commit 文件名称 -i -m 注释

i5X6BJ.png

再查看一下 Git 软件的操作日志

# git log --graph

i5XFJc.png i5XdDA.png

最后

对各位小伙伴有帮助的话,希望可以点赞❤️+收藏⭐,谢谢各位大佬~~🙌🙌🙌

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

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

相关文章

Replika:AI智能聊天机器人

【产品介绍】 Replika,这个名字可能有点拗口,但如果你知道这是复制品Replica的同音变体,你即刻能明白这个产品的定位了。官方Luka公司定义它是你的AI朋友,默默学习你,最终成为你的复制品。它不像现在市面上各大厂的AI助…

《ChatGPT开发应用指南》,Datawhale开源了!

Datawhale发布 开源教程:HuggingLLM,Datawhale团队 随着ChatGPT的爆火,我们相信未来会有越来越多的大模型及类似OpenAI提供的服务出现,AI 正在逐渐平民化,将来每个人都可以利用大模型轻松地做出自己的AI产品。 Huggin…

【历史上的今天】3 月 23 日:网景创始人出生;FORMAC 语言的开发者诞生;PRMan 非商业版发布

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 3 月 23 日,在 141 年前的今天,1882 年 3 月 23 日,抽象代数之母艾米诺特(Emmy Noether)诞生。她的…

JUC-多线程(12. AQS-周阳)学习笔记

文章目录 1. 可重入锁1.1. 概述1.2. 可重入锁类型1.3. Synchronized 可重入实现机理 2. LockSupport2.1. LockSupport 是什么2.2. 3种线程等待唤醒的方法2.2.1 Object 的等待与唤醒2.2.2. Condition接口中的等待与唤醒2.2.3. 传统的 synchronized 和 Lock 实现等待唤醒通知的约…

本地搭建属于自己的ChatGPT:基于PyTorch+ChatGLM-6b+Streamlit+QDrant+DuckDuckGo

本地部署chatglm及缓解时效性问题的思路: 模型使用chatglm-6b 4bit,推理使用hugging face,前端应用使用streamlit或者gradio。 微调对显存要求较高,还没试验。可以结合LoRA进行微调。 缓解时效性问题:通过本地数据库…

YOLOv7如何提高目标检测的速度和精度,基于模型结构提高目标检测速度

目录 一、目标检测二、目标检测的速度和精度的权衡1、速度和精度的概念和定义2、如何评估目标检测算法的速度和精度3、速度和精度之间的权衡 三、基于模型结构提高目标检测速度1、Backbone网络的选择2、特征金字塔网络的设计3、通道注意力机制4、混合精度训练 一、目标检测 目…

光纤网卡传输速率和它的应用领域有哪些呢?通常会用到哪些型号网络变压器呢?

Hqst盈盛(华强盛)电子导读:常有客户问起光纤网卡该如何选用到合适的产品,选用时要注意到哪些事项,这节将结合配合到的网络变压器和大家一起探讨,希望对大家有些帮助。 1.光纤网卡传输速率与网络…

【教程】一文读懂 ChatGPT API 接入指南

ChatGPT 是一个基于自然语言处理技术的 API,它能够根据用户的输入,生成智能回复。结合当前最先进的AI技术,AP智能续写&承接上下文;可以回答各种问题,例如:历史,科学,文化&#x…

【越早知道越好】的道理——能够提高效率的【快捷键】

文章目录 1️⃣虚拟桌面⚜️第一步:打开任务视图⚜️第二步:创建桌面⚜️第三步:桌面切换⚜️第四步:桌面删除 2️⃣窗口切换3️⃣桌面分屏⚜️如何分屏 前言🧑‍🎤:作为程序员👨‍&…

15天学习MySQL计划-多表联查(基础篇)第四天

15天学习MySQL计划(多表联查)第四天 1.多表查询 1.1概述 ​ 指从多张表中查询数据 ​ 在项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互…

大数据实战 --- 美团外卖平台数据分析

目录 开发环境 数据描述 功能需求 数据准备 数据分析 RDD操作 Spark SQL操作 创建Hbase数据表 创建外部表 统计查询 开发环境 HadoopHiveSparkHBase 启动Hadoop:start-all.sh 启动zookeeper:zkServer.sh start 启动Hive: nohup …

人工智能会影响测试工程师吗

并不是危言耸听 当下最火的是什么,那非ChatGPT莫属了,以ChatGPT为代表的各类AIGC工具,在不断颠覆我们的认知,不仅能完成律师,医学考试;还能画出一张精美的设计图,拿下艺术大赛一等奖。 以之对…

C#基础学习--反射和特性

元数据和反射 要使用反射,必须使用System.Reflection 命名空间 Type类 Type是一个抽象类,用来包含类型的特性,使用这个类的对象可以让我们获取程序使用的类型的信息 我们可以从Type对象中获取需要了解的有关类型的几乎所有信息 获取Type对象…

Node.js下载安装及环境配置教程

一、进入官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择对应你系统的Node.js版本,这里我选择的是Windows系统、64位 Tips:如果想下载指定版本,点击【以往的版本】,即可选择自己想要的版本下载 二、安装程序 &…

在 VSCode 中让 TypeScript 错误更漂亮且易于阅读

简介 TypeScript 是一种流行的编程语言,为 JavaScript 提供了静态类型和改进的错误检测。然而,随着类型的复杂性增加,错误的复杂性也增加了。这就是 Pretty TypeScript Errors VSCode 插件的用途,它可以在 Visual Studio Code 中…

8.线性搜索算法和二进制搜索算法

算法:线性搜索算法 线性搜索是一种非常简单的搜索算法。在这种类型的搜索中,逐个对所有项目进行顺序搜索。检查每个项目,如果找到匹配项,则返回该特定项目,否则搜索将继续,直到数据收集结束。 算法 Linea…

【数据结构】- 链表之单链表(下)

文章目录 前言一、单链表(下)1.1 查找修改1.2 在任意位置插入1.2.1 在pos位置插入(也就是pos位置之前)1.2.2 在pos位置之后插入 1.3 在任意位置删除1.3.1 删除pos位置得值1.3.2 删除pos位置后面的值 二、完整代码总结 前言 未来藏在迷雾中 叫人看来胆怯 带你踏足其中 就会云开…

【C++类和对象】类和对象(中):拷贝构造函数 {拷贝构造函数的概念及特征,拷贝构造函数不能使用传值传参,编译器自动生成的拷贝构造函数}

四、拷贝构造函数 4.1 概念 在创建对象时,可否创建一个与已存在对象一某一样的新对象呢? 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器…

MySQL高级(二)

一、SQL优化 (一)插入数据 批量插入 多次插入每一次insert都要与数据库建立连接。 INSERT INTO 表名 VALUES (),(),(); 一次插入数据不宜过多,不要超过1000条。 手动提交事务 START TRANSACTION; INSERT INTO 表名 VALUES (),(),(); I…

车载以太网 - SomeIP - 协议用例 - Format_01

目录 1、验证Client ID字段静态设置为0x0000 2、验证Session ID字段静态设置为0x0001 3、验证Protocol Version字段静态设置为0x01