git 如何解决分支合并冲突(VS code可视化解决+gitLab网页解决)

1、定义:两个分支修改了同一文件的同一行代码,无法自动决定如何合并代码,需要人工干预的情况。(假设A提交了文件a,此时B在未拉取代码的情况下,直接提交是会报错的,此时需要拉取之后再提交才会成功)

2、原始冲突解决演示:

背景:假设现在有主分支:develop,开发分支A,开发分支B,二者都是基于develop分支创建的,此时A 先向develop分支合并了一个文件index.js。然后B紧接着向develop分支上合并了自己修改的index.js文件,以为A和B都在index.js中写了不同的代码,此时git不知道保留哪段代码。此时就会报代码冲突。怎么解决呢?这里介绍的是在gitLab网页上做合并分支操作的情况。

首先如果出现代码冲突时,gitLab会给出提示提醒你合并冲突了,此时针对的代码冲突可以在gitLab上点击在线解决, 

如果不想在线解决冲突,也可在VS code中解决。首先使用git remote update -p  # 获取所有远程最新数据,并清理过时的远程分支 。其次git checkout 自己的开发分支名   # 切换到你的分支(假设当前不在你的分支)。然后git merge 主分支名   # 将远程 develop 分支合并到你的分支。此时在左侧的源代码管理中会列举冲突的文件(右侧会提示感叹号),点击进去会显示具体的冲突代码,此时可以依据自己的需求解决冲突之后,然后重新提交推送合并即可。

3、上面说到的原始合并冲突会有个情况,即开发分支B收到了develop的污染。下面说下进阶版。

背景:假设现在有主分支 :develop,开发分支A,开发分支B,初版发布分支1.1.0,更新版发布分支1.1.1,本次发布分支1.1.2。此时A与B分支都是基于1.1.0分支创建的,develop是调试用的分支。发布时会将各自的开发分支合并至发布分支上,但此时有个复杂情况就是分支A是第二次迭代的时候合并至1.1.1上了,此时分支B是第三次迭代的开发分支,是需要合并到1.1.2上的,此时有人就会问了,为什么B分支不在1.1.1的基础上创建呢?因为第二次迭代与第三次迭代是同步开发的。此时我再想通过merge develop到B分支上时就会出现污染。因为develop分支上可能存在某些代码是本次发布不需要发布出去的代码。此时,比如有个需求,需要在开发分支B上修改1.1.1分支上的某个文件index.js,此时应该怎么做呢?

解决方案:使用 gitcheckout+临时分支(推荐)

第一步:在本地模拟合并冲突

# 1. 确保当前在B分支且工作区干净
git checkout B
git status  # 确认没有未提交的修改

# 2. 基于当前B创建临时分支(用于安全测试合并)
git checkout -b 临时分支名称

# 3. 尝试将 develop 合并到临时分支(触发冲突):(这里也可以merge1.1.1分支,只是develop是调试分支,所有的开发分支都需要合并至develop分支验证通过才会合并至1.1.2上),这里解决的是B分支与develop分支合并冲突。

git merge develop
#这里会报冲突,但不会影响原B分支

第二步:在 VSCode 中查看冲突

VSCode 会自动检测冲突:
1.打开 源代码管理面板(左侧导航栏的 Git 图标)。
2.冲突文件会显示为 红色感叹号 !,文件名旁标注 CONELICT 。
3.点击冲突文件,会看到冲突标记(<<<<<<<、==----=、>>>>>>>)。

手动查看冲突文件:git status

第三步:清理临时分支(不保存合并结果),此时B分支完全未被修改,且你已知道冲突文件。

git checkout B #切换回原分支

git branch -D 临时分支名 #强制删除临时分支

第四步:此时可将刚刚在临时分支上解决好的冲突代码复制一份替换至B分支上,此时就可以精确的解决index.js文件的代码冲突,而不会造成污染。此时再次提交推送合并即可。

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

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

相关文章

系统架构设计师(一):计算机系统基础知识

系统架构设计师&#xff08;一&#xff09;&#xff1a;计算机系统基础知识 引言计算机系统概述计算机硬件处理器处理器指令集常见处理器 存储器总线总线性能指标总线分类按照总线在计算机中所处的位置划分按照连接方式分类按照功能分类 接口接口分类 计算机软件文件系统文件类…

聊一聊接口测试中缓存处理策略

目录 一、强制绕过缓存 添加时间戳参数 修改请求头 二、主动清除缓存 清除本地缓存 清除服务端缓存&#xff08;需权限&#xff09; 清除CDN缓存 三、测试缓存逻辑 首次请求获取数据 记录响应头中的缓存标识​​​​​ 验证缓存生效 测试缓存过期​​​​​​​ 四…

机器学习算法-逻辑回归

今天我们用 「预测考试是否及格」 的例子来讲解逻辑回归&#xff0c;从原理到实现一步步拆解&#xff0c;保证零基础也能懂&#xff01; &#x1f3af; 例子背景 假设你是班主任&#xff0c;要根据学生的「学习时间」预测「是否及格」&#xff0c;手上有以下数据&#xff1a;…

【论文解读】CVPR2023 PoseFormerV2:3D人体姿态估计(附论文地址)

论文链接&#xff1a;https://arxiv.org/pdf/2303.17472 源码链接&#xff1a;https://github.com/QitaoZhao/PoseFormerV2 Abstract 本文提出了 PoseFormerV2&#xff0c;通过探索频率域来提高 3D 人体姿态估计的效率和鲁棒性。PoseFormerV2 利用离散余弦变换&#xff08;DC…

DRW - 加密市场预测

1.数据集描述 在本次比赛中&#xff0c;数据集包含加密市场的分钟级历史数据。您的挑战是预测未来的加密货币市场价格走势。这是一项kaggle社区预测竞赛&#xff0c;您可以以 CSV 文件的形式或通过 Kaggle Notebooks 提交您的预测。有关使用 Kaggle Notebooks 的更多详细信息&a…

嵌入式Linux系统中的启动分区架构

在嵌入式Linux系统架构中,Linux内核、设备树(Device Tree)与引导配置文件构成了系统启动的基础核心。如何安全、高效地管理这些关键文件,直接影响到系统的稳定性与可维护性。近年来,越来越多的嵌入式Linux开发者选择将启动相关文件从传统的“混合存放”方式,转向采用独立…

用户资产化视角下开源AI智能名片链动2+1模式S2B2C商城小程序的应用研究

摘要&#xff1a;在数字化时代&#xff0c;平台流量用户尚未完全转化为企业的数字资产&#xff0c;唯有将其沉淀至私域流量池并实现可控、随时触达&#xff0c;方能成为企业重要的数字资产。本文从用户资产化视角出发&#xff0c;探讨开源AI智能名片链动21模式S2B2C商城小程序在…

Spring是如何实现属性占位符解析

Spring属性占位符解析 核心实现思路1️⃣ 定义占位符处理器类2️⃣ 处理 BeanDefinition 中的属性3️⃣ 替换具体的占位符4️⃣ 加载配置文件5️⃣ Getter / Setter 方法 源码见&#xff1a;mini-spring 在使用 Spring 框架开发过程中&#xff0c;为了实现配置的灵活性&#xf…

【大模型面试每日一题】Day 31:LoRA微调方法中低秩矩阵的秩r如何选取?

【大模型面试每日一题】Day 31&#xff1a;LoRA微调方法中低秩矩阵的秩r如何选取&#xff1f; &#x1f4cc; 题目重现 &#x1f31f;&#x1f31f; 面试官:LoRA微调方法中低秩矩阵的秩r如何选取&#xff1f;&#xff1a; #mermaid-svg-g5hxSxV8epzWyP98 {font-family:"…

字节golang后端二面

前端接口使用restful格式&#xff0c;post与get的区别是什么&#xff1f; HTTP网络返回的状态码有哪些&#xff1f; go语言切片与数组的区别是什么&#xff1f; MySQL实现并发安全避免两个事务同时对一个记录写操作的手段有哪些&#xff1f; 如何实现业务的幂等性&#xff08;在…

Spring Security安全实践指南

安全性的核心价值 用户视角的数据敏感性认知 从终端用户角度出发,每个应用程序都涉及不同级别的数据敏感度。以电子邮件服务与网上银行为例:前者内容泄露可能仅造成隐私困扰,而后者账户若被操控将直接导致财产损失。这种差异体现了安全防护需要分级实施的基本原则: // 伪…

Leetcode第451场周赛分析总结

题目链接 竞赛 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 题目解析 A. 3560. 木材运输的最小成本 AC代码 class Solution { public:long long minCuttingCost(int n, int m, int k) {if (n > m) swap(n, m); // n < m;using ll long lon…

Linux中的shell脚本

什么是shell脚本 shell脚本是文本的一种shell脚本是可以运行的文本shell脚本的内容是由逻辑和数据组成shell脚本是解释型语言 用file命令可以查看文件是否是一个脚本文件 file filename 脚本书写规范 注释 单行注释 使用#号来进行单行注释 多行注释 使用 : " 注释内容…

PHP与MYSQL结合中中的一些常用函数,HTTP协议定义,PHP进行文件编程,会话技术

MYSQL&#xff1a; 查询函数: 执行查询语句: 1.mysql_query("SQL语法"); 凡是执行操作希望拿到数据库返回的数据进行展示的(结果返回: 数据结果); 2.执行结果的处理:成功为结果集&#xff0c;失败为false; 成功返回结果:SQL指令没有错误&#xff0c;但是查询结果…

数学分析——一致性(均匀性)和收敛

目录 1. 连续函数 1.1 连续函数的定义 1.2 连续函数的性质 1.2.1 性质一 1.2.2 性质二 1.2.3 性质三 1.2.4 性质四 2. 一致连续函数 2.1 一致连续函数的定义 2.2 一致连续性定理(小间距定理)(一致连续函数的另一种定义) 2.3 一致连续性判定法 2.4 连…

湖北理元理律师事务所:企业债务优化的科学路径与人文关怀

湖北理元理律师事务所&#xff1a;企业债务优化的科学路径与人文关怀 在中小企业经营压力增大的背景下&#xff0c;如何平衡债务清偿与员工生计成为关键课题。湖北理元理律师事务所联合计划集团公司&#xff0c;为服务企业设计了一套兼顾法律合规性与民生保障的债务解决方案&a…

树莓派安装openwrt搭建软路由(ImmortalWrt固件方案)

&#x1f923;&#x1f449;我这里准备了两个版本的openwrt安装方案给大家参考使用&#xff0c;分别是原版的OpenWrt固件以及在原版基础上进行改进的ImmortalWrt固件。推荐使用ImmortalWrt固件&#xff0c;当然如果想直接在原版上进行开发也可以&#xff0c;看个人选择。 &…

一键净化Excel数据:高性能Python脚本实现多核并行清理

摘要 本文分享两个基于Python的Excel数据净化脚本&#xff0c;通过多进程并行技术清除工作表内不可见字符、批注、单元格样式等冗余内容&#xff0c;利用OpenPyXL实现底层操作&#xff0c;结合tqdm进度条和进程级任务分配&#xff0c;可快速处理百万级单元格数据。适用于数据分…

【Netty】EventLoopGroup

在Netty的ServerBootstrap中设置两个EventLoopGroup的作用是将网络操作的两个关键阶段分离到不同的线程组中处理&#xff0c;从而优化性能并简化并发控制。具体来说&#xff1a; 1. 两个EventLoopGroup的角色 第一个EventLoopGroup&#xff08;通常称为bossGroup&#xff09;&…

【前端】Vue中使用CKeditor作为富文本编辑器

官网https://ckeditor.com/ 此处记录一下我在使用的时候具体初始化的代码。 <template><div><textarea :id"id"></textarea></div> </template><script> export default {name: CkEditor,data: function () {return {id:…