如何解决git 发生冲突的场景?

news2024/11/22 22:32:50

一、是什么

一般情况下,出现分支的场景有如下:

  • 多个分支代码合并到一个分支时
  • 多个分支向同一个远端分支推送

具体情况就是,多个分支修改了同一个文件(任何地方)或者多个分支修改了同一个文件的名称

如果两个分支中分别修改了不同文件中的部分,是不会产生冲突,直接合并即可

应用在命令中,就是pushpullstashrebase等命令下都有可能产生冲突情况,从本质上来讲,都是mergepatch(应用补丁)时产生冲突

二、分析

在本地主分值master创建一个a.txt文件,文件起始位置写上master commit,如下:

然后提交到仓库:

  • git add a.txt
  • git commit -m ‘master first commit’

创建一个新的分支featurel1分支,并进行切换,如下:

git checkout -b featurel1

然后修改a.txt文件首行文字为 featurel commit,然后添加到暂存区,并开始进行提交到仓库:

  • git add a.txt
  • git commit -m ‘featurel first change’

然后通过git checkout master切换到主分支,通过git merge进行合并,发现不会冲突

此时a.txt文件的内容变成featurel commit,没有出现冲突情况,这是因为git在内部发生了快速合并

如果当前分支的每一个提交(commit)都已经存在另一个分支里了,git 就会执行一个“快速向前”(fast forward)操作

git 不创建任何新的提交(commit),只是将当前分支指向合并进来的分支

如果此时切换到featurel分支,将文件的内容修改成featrue second commit,然后提交到本地仓库

然后切换到主分支,如果此时在a.txt文件再次修改,修改成mastet second commit,然后再次提交到本地仓库

此时,master分支和feature1分支各自都分别有新的提交,变成了下图所示:

这种情况下,无法执行快速合并,只能试图把各自的修改合并起来,但这种合并就可能会有冲突

现在通过git merge featurel进行分支合并,如下所示:

从冲突信息可以看到,a.txt发生冲突,必须手动解决冲突之后再提交

git status同样可以告知我们冲突的文件:

打开a.txt文件,可以看到如下内容:

git<<<<<<<=======>>>>>>>标记出不同分支的内容:

  • <<<<<<< 和 ======= 之间的区域就是当前更改的内容
  • ======= 和 >>>>>>> 之间的区域就是传入进来更改的内容

现在要做的事情就是将冲突的内容进行更改,对每个文件使用 git add 命令来将其标记为冲突已解决。 一旦暂存这些原本有冲突的文件,Git 就会将它们标记为冲突已解决然后再提交:

  • git add a.txt
  • git commit -m “conflict fixed”

此时master分支和feature1分支变成了下图所示:

使用git log命令可以看到合并的信息:

三、总结

Git无法自动合并分支时,就必须首先解决冲突,解决冲突后,再提交,合并完成

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交

参考文献

  • https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

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

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

相关文章

景联文科技:针对敏感数据的安全转录服务,护航信息安全

针对数据的安全转录服务&#xff0c;主要是为了确保数据在转录过程中的安全性和隐私保护。这些服务通常会采用一系列严格的安全措施&#xff0c;如数据加密、访问控制、数据脱敏等&#xff0c;以确保敏感数据不会被泄露或滥用。 景联文科技提供特定的数据转录服务&#xff0c;以…

【23真题】均分130,兵工七子,速速拿下!

今天分享的是23年沈阳理工大学810的信号与系统试题及解析&#xff1a; 本套试难度分析&#xff1a;平均分130分左右&#xff0c;最高分144分&#xff0c;22真题我也做过&#xff0c;题型变化不大。本套试题内容难度中等偏下&#xff0c;题型挺全&#xff0c;判断选择都有&#…

Unity解决:导出AndroidStudio工程 出现如下报错的解决方法

unity2019.4+ androidStudio2023.x+ 问题1: cvc-complex-type.2.4.a: 发现了以元素 base-extension 开头的无效内容。应以 {layoutlib} 之一开头。 解决:第一个Build.gradle更改如下 // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING …

Mac电脑线框图工具推荐 Balsamiq Wireframes 最新免激活

mac Balsamiq Mockups下载功能介绍 1、我们的甜点&#xff1a;创意阶段 在设计新界面的早期阶段&#xff0c;Balsamiq确实闪耀着光芒。 Balsamiq是zenware&#xff0c;这意味着它将帮助你“在区域内”&#xff0c;并留在那里。我们的目标是让您忘记我们的软件。Balsamiq提供…

jdk17运行程序报错module java.base does not open java.lang.reflect to unnamed module @

背景 jdk17运行程序报错module java.base does not open java.lang.reflect to unnamed module 解决方案 增加配置 --add-opens java.base/java.langALL-UNNAMED --add-opens java.base/sun.net.utilALL-UNNAMED --add-opens java.base/java.lang.reflectALL-UNNAMED启动jar…

Python算法练习 10.23

leetcode 1372 二叉树中的最长交错路径 给你一棵以 root 为根的二叉树&#xff0c;二叉树中的交错路径定义如下&#xff1a; 选择二叉树中 任意 节点和一个方向&#xff08;左或者右&#xff09;。如果前进方向为右&#xff0c;那么移动到当前节点的的右子节点&#xff0c;否…

数字化可能会用到哪些系统

数字化企业在实施数字化转型过程中&#xff0c;通常会使用多个系统来支持不同的业务需求和功能。以下是一些可能会用到的系统&#xff0c;并对其进行详细介绍&#xff1a; 1. 企业资源计划系统&#xff08;ERP&#xff09;&#xff1a; 企业资源计划系统是数字化企业的核心系…

东莞理工学院网安学院举办第二届“火焰杯”软件测试高校就业选拔赛颁奖典礼

11月25日下午&#xff0c;由软件测试就业联盟主办的第二届“火焰杯”软件测试高校就业选拔赛颁奖典礼在9A206报告厅隆重举行。网络空间安全学院首次参加该项赛事&#xff0c;共有6位同学参加&#xff0c;全部顺利入围决赛。其中&#xff0c;19软件工程2班梁垧同学获得决赛三等奖…

免费SSL证书的作用及其优势

在互联网时代&#xff0c;保护网站和用户信息的安全至关重要。SSL证书是一种用于加密和保护数据传输的安全技术。本文将探讨免费SSL证书的作用以及它所具备的优势。 点击申请免费证书保护你的网站https://www.joyssl.com/certificate/select/free.html?nid5 一、保护敏感数据…

【接口测试】Jmeter接口实战-TCP及Websocket接口,打通接口测试...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Jmeter测试TCP接口…

12. 机器学习 - 拟合

Hi, 你好. 我是茶桁. 这一节课一开始我们要说一个非常重要的概念: 拟合. 拟合 相信只要你关注机器学习, 那么多少在某些场合下都会听到拟合这个概念. 什么叫做拟合,什么叫做过拟合或者欠拟合呢? 假如有一个模型, 这个模型在训练数据的时候效果很好, 体现在loss很小, 或者说…

三道MySQL联合索引面试题,你能答对几道?

思考一个问题&#xff0c;联合索引在B树中是怎么存储的&#xff1f; 比如在&#xff08;a,b&#xff09;字段上面创建联合索引&#xff0c;存储结构类似下面这样&#xff1a; 数据都是先按a字段排序&#xff0c;a字段的值相等时再按b字段排序。 a字段的值是全局有序的&#x…

使用ngrok内网穿透后,调用相关接口报ERR_NGROK_6024 异常

header增加&#xff1a;ngrok-skip-browser-warning:69420即可。如下图&#xff1a;

容器,Pod,Kubernetes,节点这四个基本概念以及互相之间运用关系,概念、原理解读,以及Pod中特殊pause容器

容器&#xff0c;Pod&#xff0c;Kubernetes&#xff0c;节点这四个基本概念以及互相之间关系&#xff0c;概念、原理解读&#xff0c;以及Pod中特殊pause容器 一. 容器&#xff0c;Pod&#xff0c;Kubernetes&#xff0c;节点这四个基本概念以及互相之间运用关系。 1.1 什么…

7. 矢量图层数据查询选择和保存

文章目录 前言数据查询QGis代码实现获取图层数据的字段QgsField获取图层数据QgsFeature以及QgsAttribute 数据选择QGis代码实现 创建虚拟图层并保存为shape文件QGis代码实现 总结 前言 前几章分别介绍了qgis二次开发环境搭建、整体框架、二次开发初始化、Map canvas、矢量图层…

在 Mac M1 上运行 Llama 2 并进行训练

在 Mac M1 上运行 Llama 2 并进行训练 Llama 2 是由领先的人工智能研究公司 Meta &#xff08;前Facebook&#xff09;开发并发布的下一代大型语言模型 (LLM)。 它基于 2 万亿个公共数据 token 进行了预训练&#xff0c;旨在帮助开发人员和企业组织构建基于人工智能的生成工具和…

通过pipeline配置sonar自动化实现过程解析

这篇文章主要介绍了通过pipeline配置sonar自动化实现过程解析,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.sonar配置webhooks&#xff0c; 2.url填写jenkins的地址&#xff1a;http://jenkinsurl/sonarqu…

TensorFlow2从磁盘读取图片数据集的示例(tf.keras.utils.image_dataset_from_directory)

import os import warnings warnings.filterwarnings("ignore") import tensorflow as tf from tensorflow.keras.optimizers import Adam from tensorflow.keras.applications.resnet import ResNet50#数据所在文件夹 base_dir ./data/cats_and_dogs train_dir os…

Docker搭建nacos2.x集群+nginx代理

说明&#xff1a; 如果只需要搭建单节点nacos&#xff0c;请参照我的这篇文章 一、环境准备 资源版本说明docker1.17用于安装nacos及mysql等依赖nacos2.1.1nacosmysql5.6用于数据持久化&#xff0c;本文使用mysql8.0.34 二、安装mysql 说明&#xff1a; 本次安装mysql将以d…

CorelDRAW和InDesign软件的功能区别

Corel和Ilustrator都是基于矢量的排版软件。另一方面&#xff0c;InDesign的主要目的是基于包含不同基本网格设计&#xff0c;以及标题和段落样式信息的母版页来制作多页面布局&#xff0c;例如杂志或书籍&#xff0c;这为了使出版物保持一致。 CorelDRAW图形套件是加拿大Core…