git merge 命令详解

news2024/11/26 10:40:27

1. 前言
2. 合并场景之 Fast-forward(快速合并)
3. 合并场景之 three way merge(三路合并之正常合并)
4. 合并场景之 three way merge(三路合并之冲突合并)
5. 中止合并

1. 前言


将指定分支合并到当前分支

 
  1. git merge <branch>

如果当前指针指向的是 master 分支,那么下面代码就是将 dev 分支合并到 master 分支

 
  1. git merge dev

合并流程分析:

当分支进行合并时,首先会自动合并。如果可以自动合并成功,只需要修改下合并后的备注信息,然后会自动提交到版本库;如果自动合并失败,会出现文件冲突的提示,我们需要手动将冲突处理掉,然后再将文件提交到版本库

2. 合并场景之 Fast-forward(快速合并)


什么是 Fast-forward 场景 ?

在 Fast-forward 场景下,合并分支会绝对成功,不会产生冲突。测试合并:

 
  1. # 初始化 git 仓库,完成一次提交
  2. echo abc >> 1.txt
  3. git init
  4. git add 1.txt
  5. git commit -m 'add 1.txt'
  6. # 以当前分支为起点,创建一个 dev 分支,修改 1.txt 内容,提交到到本地库
  7. git checkout -b dev
  8. echo def >> 1.txt
  9. git add 1.txt
  10. git commit -m '修改 1.txt'
  11. # 切换到 master 分支
  12. git checkout master

将 dev 分支合并到当前分支(master)

Updating 5e443b0..c657494:commit id 由 5e443b0 变为了 c657494

 
  1. $ git merge dev
  2. Updating 5e443b0..c657494
  3. Fast-forward
  4. 1.txt | 1 +
  5. 1 file changed, 1 insertion(+)

结论: 创建 dev 分支后,因 master 分支没有做任何修改,故将 dev 分支合并到 master 分支时会绝对成功

3. 合并场景之 three way merge(三路合并之正常合并)


我们先来理解下什么是 three way merge(三路合并)

图中的 A、B、C 表示三向,三路合并存在两种情况:1. 正常合并 2. 发生文件冲突,合并失败

三路合并之合并成功示例:

 
  1. $ git merge dev
  2. Merge made by the 'recursive' strategy.
  3. 2.txt | 0
  4. 1 file changed, 0 insertions(+), 0 deletions(-)
  5. create mode 100644 2.txt

命令中的提示翻译

 
  1. # 通过“递归”策略进行合并
  2. Merge made by the 'recursive' strategy.

4. 合并场景之 three way merge(三路合并之冲突合并)


冲突产生的原因

两个分支在同一个文件的同一个位置有两套完全不同的修改,git 无法替我们决定使用哪一个,必须人为决定文件内容

自动合并失败时的提示

 
  1. # 自动合并 1.txt
  2. Auto-merging 1.txt
  3. # 冲突(内容): 将冲突合并到 1.txt 中
  4. CONFLICT (content): Merge conflict in 1.txt
  5. # 自动合并失败;修复冲突然后提交结果
  6. Automatic merge failed; fix conflicts and then commit the result.

查看状态

 
  1. # 你有未合并的内容
  2. You have unmerged paths.
  3. # 修改冲突,然后运行 "git commit"
  4. (fix conflicts and run "git commit")
  5. # 使用 "git merge --abort" 中止合并
  6. (use "git merge --abort" to abort the merge)
  7. # 未合并的内容
  8. Unmerged paths:
  9. # 使用 "git add" 标记已解决冲突
  10. (use "git add <file>..." to mark resolution)
  11. both modified: 1.txt
  12. no changes added to commit (use "git add" and/or "git commit -a")

5. 中止合并


已经执行了 git merge 合并分支,突然不想合并了,可以使用以下命令中止当前正在进行的合并

 
  1. git merge --abort

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

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

相关文章

继承中国元宇宙之父钱学森先生“灵境”的概念产物—XR电影《告别核桃》代表了什么?

元宇宙大家都不陌生吧&#xff0c;那么你听说过“灵境”吗&#xff1f;你知道“灵境”与元宇宙XR影片《告别核桃》有什么关系吗&#xff1f;在2021年12月9日举行的2021元宇宙产业论坛上&#xff0c;钱学森线上30年前55份珍贵的手稿曝光。原来早在1990年&#xff0c;钱学森就曾在…

MATLAB高通滤波与低通滤波GUI实现代码

1.需搭建的GUI界面 两个axes&#xff0c;一个用于导入原始图像&#xff0c;一个用于输出处理后的头像&#xff0c;并且记好他们的Tag&#xff0c;在代码里会用到 2.导入图片功能代码实现 给一个String为导入图片的button添加callback函数&#xff0c;在这里提供了多种方法 f…

订单增2倍?如何利用促销手段瞄准圣诞季高意向顾客?

圣诞节作为一个类似于中国春节的节日&#xff0c;在12月的最后一周拉开帷幕&#xff0c;据有关业内人士称&#xff0c;作为拥有众多全球站的亚马逊电子商务平台在此次圣诞节的促销狂欢节中表现似乎稍显停滞&#xff0c;其作为电商领域的龙头企业&#xff0c;没能守住其销售总额…

C++对象的初始化和清理,构造函数,析构函数,深拷贝,浅拷贝,初始化列表,静态成员变量,静态成员函数

目录 1、构造函数和析构函数 2、构造函数的分类及调用 3、拷贝构造函数的调用时机&#xff0c;什么时候会用到拷贝构造函数 4、构造函数的调用规则 4.1只要写了一个类&#xff0c;C编译器都会给每个类至少添加三个函数 4.2如果我们写了有参构造函数&#xff0c;编译器就不再…

jsp+ssm计算机毕业设计“原创音乐爱好者”交流网站论文【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…

java基础讲义05-数组

数组学习一 一维数组1.1 数组介绍1.2 多个变量和数组对比1.3 数组的定义和初始化1.3.1 数组定义1.3.2 数组初始化1.4 数组访问二 数组内存结构2.1 JVM内存介绍2.1.1一个数组对象的内存图2.1.2常见异常处理三 数组常见操作四 二维数组4.1 二位数组介绍4.2 二维数组定义和初始化4…

C语言---指针初阶---总结

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;鹏哥带我学c带我飞 &#x1f4ac;总结&#xff1a;希望你看…

工业4.0 资产管理壳学习笔记( 6)-管理壳细节

本文是“资产管理壳细节 Part1的读书笔记。 <Details_of_the_Asset_Administration_Shell_Part1_V3.pdf> 要真正了解工业4.0 的管理壳&#xff0c;绕不开认真地读这篇文章。老实说&#xff0c; 第一次读这个文本会发现什么都明白&#xff0c;就是不知道有什么用场。其实学…

三种大数据应用架构介绍

信息技术的发展&#xff0c;如今数据存储能力上升到了 TB、PB 级别&#xff0c;企业和政府部门都以各种形式存储了大量的数据&#xff0c;如何快速有效地处理规模大、结构复杂的数据&#xff1f;本文主要介绍大数据的三类应用架构MapReduce、Hadoop、Spark&#xff0c;进行数据…

项目:德波量化(DealBot)

概述 德波量化&#xff08;DEALBOT&#xff09;项目研发始于2015年&#xff0c;初衷是建立一个可以自己编写交易策略&#xff0c;又可以自动化交易的小软件。为了这个目的&#xff0c;广泛搜寻了现有的开源量化交易软件&#xff0c;包括国外的Backtrader、zipline、Pysystemtr…

SSM整合01:

1.1原始方式整合 11.编写相应配置文件 Spring配置文件&#xff1a;applicationContext..xml SprngMVCi配置文件&#xff1a;spring-mvc.xml MyBatis映射文件&#xff1a;AccountMapper..xml .MyBatis核心文件&#xff1a;sqlMapConfig.xml 数据库连接信息文件&#xff1a;idbc.…

[C++数据结构](34)B树

文章目录B 树概念与性质B 树基本操作与实现框架查找插入遍历B 树性能分析及其优势B 树概念与性质 1970 年&#xff0c;R.Bayer 和 E.mccreight 提出了一种适用于外查找的树&#xff0c;它是一种平衡的多叉树&#xff0c;称为 B 树&#xff08;或 B-树、B_树&#xff09;。 一…

数字先锋 | 主机、硬盘、CPU统统没有? 这个电教室有点“潮”!

百年大计&#xff0c;教育为本。在数字中国建设整体布局和推进下&#xff0c;教育新基建为教育高质量发展构筑了数字底座&#xff0c;更为教育创新变革提供了强大的技术基础和应用环境。近年来&#xff0c;教育部门紧抓新一代信息技术发展机遇&#xff0c;赋能学校高质量发展&a…

使用YOLOV5训练口罩检测模型

一、YOLOV5源码和口罩数据集的下载与导入 我是在github上下载的&#xff0c;地址是GitHub - ultralytics/yolov5 at v7.0&#xff0c;下载之后&#xff0c;我将其导入pycharm环境中&#xff0c; 数据集在roboflow上面下载的&#xff0c;地址是Computer Vision Datasets&#…

Linux基础-压缩与打包

该文章主要为完成实训任务&#xff0c;详细实现过程及结果见【参考文章】 参考文章&#xff1a;https://howard2005.blog.csdn.net/article/details/127129580 文章目录一、压缩与打包1.1 压缩1.2 打包1.3 压缩或打包文件常见拓展名二、gzip命令2.1 命令作用2.2 选项参数2.3 实…

python中pandas进行数据分析与可视化(1)

1.创建数据源 matplotlib库是用于数据可视化&#xff0c;pandas则是用于数据分析&#xff0c;在导入这两个包之后&#xff0c;我们可以手工创建两个数据&#xff0c;其表示的是在某一年里&#xff0c;不同名称的新生儿数量&#xff0c;比如被叫做Bob的新生儿有968位 import m…

基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

动态规划之01背包问题

背包练习网址https://www.luogu.com.cn/contest/92872 想要做题的话可以到这里面来进行完成&#xff08;邀请码&#xff1a;r36l&#xff09;。注&#xff1a;要输入邀请码才可以进入。 满篇都是干货&#xff0c;有详细的注释和代码&#xff0c;请放心观看。 这就是传说中的 0…

[附源码]Python计算机毕业设计二手交易平台管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

数据生态第四弹 | OpenMLDB Hive Connector,架构起数据仓库到特征工程的生态桥梁

导读 近日&#xff0c;OpenMLDB 实现了与开源数据仓库软件 Hive 的连接&#xff0c;继完成与 Kafka、Pulsar、RocketMQ 等实时数据源生态整合后&#xff0c;持续构建离线数据生态&#xff0c;期待建设一个更加全面一体的上下游生态圈&#xff0c;在吸引更多用户的同时也能降低…