用idea解决代码合并冲突

news2024/9/28 15:30:05

参考文章:

IDEA:idea中的Git冲突解决(非常重要)

idea操作git时 合并分支+解决冲突

一、前言

1.什么事冲突?

  • 冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致。读起来有点绕,结合下面的案例理解。
  • 从上面对冲突的定义来看,冲突时发生在同一个文件上的。

二、实战分析

1.生产上冲突的场景

1.2常见的冲突的生产场景如下:

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

1.3 git的合并中产生冲突的具体情况

  • 两个开发者(分支中)修改了同一个文件(不管什么地方)
  • 两个开发者(分支中)修改了同一个文件的名称

注意: 两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。

总结: 上面各种情况的本质都是,当前文件与合并文件不一致,因此不论哪种情况其解决冲突的方法是一样的。

1.4 强制 回滚到指定的提交记录版本

  • 场景:当我们有时候在自己的本地上失误修改了东西,或则出现了很多冲突合并失败的代码。那么这个时候保持没有意外的情况下,可以直接回滚到最新提交记录的那个版本,这样就能一下子复原。

三、idea中解决冲突

1.模拟场景分析

假设有另个开发人员开发同一个项目,并且编写同一个文件,工作流程如下:

01号程序员先上传文件 conflict.txt,并继续在 conflict.txt上写代码

 02号程序员更新项目代码,并在 conflict.txt 上写代码,写完后,在提交到远程服务端

 当01号程序员把写完后,准备提交代码了,这时的正规操作手法,先更新在提交,但是在更新的时候必然会冲突,因为这时候更新的代码 conflict.txt 与本地仓库代码 conflict.txt 不一致、

 提交前,我要更新,冲突了:

 

  • 解决上图中的冲突方案如下:
    • Accept Yours:代表以自己的为准
    • Accept Theris:代表以更新下来的文件为准
    • Merge:代表手动合并

一般解决冲突我们都是选择 Merge

 

  • 将需要的内容点击:">>"既可以合并内容到 result 中,不需要的内容点击“x”即可,合并完成后点击 apply 即可。
  • 值得注意的是,最后将所有的“x >>”符号都要处理完,不需要的点击“x”,需要的点击“>>”
  • 最后,不论是什么场景下产生的冲突解决方法是一样的。

四、关于冲突的个人心得

  • 多人协作开发的时候如果出现了你没有改过的文件跟你冲突了,一定要去找到当事者,说清楚是如何冲突的。
  • 然后协商解决,千万不要擅自拉别的分支去试图解决冲突,或找文件覆盖,更或者以自己的文件为准。
  • 同时记住解决了之后要add 和 commit 最后push,为保证万无一失,最后在冲突都解决之后重启项目。
  • 保证至少不会有立即奔溃的现象发生然后才去提交push
  • 提交的时候一定要保持清醒先搞清楚自己要提交的文件之间的关系然后再提交,这样才不会有文件缺失的问题造成奔溃
  • 如果任务比较多又开了多个分支分别进行开发,再次强调一定要清楚自己在各个分支上做了什么,自己要提交的是什么,最好是能做个详细的笔记,没有把握宁愿不要去提交到生产服务器
  • 提交代码的时候不要走神,因为这是一个神圣的时刻。

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

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

相关文章

16、Flink 的table api与sql之连接外部系统: 读写外部系统的连接器和格式以及FileSystem示例(1)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Unity解决:3D开发模式第三人称视角 WASD控制角色移动旋转 使用InputSystem

Unity版本:2019.2.3f1 目录 安装InputSystem 1:创建InputHander.cs脚本 挂载到Player物体上 获取键盘输入WADS 2.创建PlayerLocomotion.cs挂载到Player物体上,控制物体移动转向 安装InputSystem 菜单栏/Window/Package Manager/Input Syst…

AI图片处理功能演示

例如,这是一张不错的图片,但是有3只手。 我们可以选择有问题的区域,然后要求 niji 进行重新绘制。 根据我们选择的区域,我们可以以不同的方式修复结果。 创意修复 修复并不仅限于纠正错误。我们可以要求 niji 添加额外的元素&…

MATLAB R2023a for Mac Update_5

MATLAB是一种高级的计算机编程环境和开发工具,主要用于数值计算、数据分析、算法开发和可视化。它由MathWorks公司开发,被广泛应用于科学研究、工程设计、数据分析和教育等领域。 MATLAB提供了丰富的数学和工程函数库,可以进行矩阵运算、信号…

跨域资源共享 (CORS) | PortSwigger(burpsuite官方靶场)【万字】

写在前面 在开始之前,先要看看ajax的局限性和其他跨域资源共享的方式,这里简单说说。 下面提到大量的origin,注意区分referer,origin只说明请求发出的域。 浏览器的同源组策略:如果两个 URL 的 protocol、port 和 h…

所见即所得,「Paraverse平行云」助力万间打造智能建造新图景

在城市建设行业中,数字化逐渐成为其主导力量。 新一代信息基础设施建设也迎来了新的里程碑。数据显示,截至今年,我国已全面推进城市信息模型(CIM)基础平台建设,为城市规划、建设管理提供了多场景应用的强大…

【Python】代理池针对ip拦截破解

代理池是一种常见的反反爬虫技术,通过维护一组可用的代理服务器,来在被反爬虫限制的情况下,实现数据的爬取。但是,代理池本身也面临着被目标网站针对ip进行拦截的风险。 本文将详细介绍代理池针对ip拦截破解的方法,包含…

小研究 - Android 字节码动态分析分布式框架(三)

安卓平台是个多进程同时运行的系统,它还缺少合适的动态分析接口。因此,在安卓平台上进行全面的动态分析具有高难度和挑战性。已有的研究大多是针对一些安全问题的分析方法或者框架,无法为实现更加灵活、通用的动态分析工具的开发提供支持。此…

colab释放GPU显存

不用其他博客说的安装包,然后查看进程,kill,本文介绍一种简单的方法。 点击运行过代码的ipynb页面右上角的下三角,然后点击展开菜单栏中的View resources 随后会展开一个侧边栏,点击 manage sessions 3. 在页面中央会…

十问华为云 Toolkit:开发插件如何提升云上开发效能

众所周知,桌面集成开发环境(IDE)已经融入到开发的各个环节,对开发者的重要性和广泛度是不言而喻的,而开发插件更是建立在IDE基础上的功能Buff。 Huawei Cloud ToolKit作为华为云围绕其产品能力向开发者桌面上的延伸&a…

CentOS系统环境搭建(十六)——es7安装ik分词器(纯命令行安装)

centos系统环境搭建专栏🔗点击跳转 关于Elasticsearch的安装请看CentOS系统环境搭建(十二)——CentOS7安装Elasticsearch。 es7安装ik分词器(纯命令行安装) 1.找版本 我的Elasticsearch是7.17.6的,下载ik…

BBS项目day03、首页(前端文章布局、分类布局、标签布局)、个人站点(前后端实现)、在admin中模拟数据先在admin.py中注册表

一、首页 路由 from django.contrib import admin from django.urls import path, re_path from app01 import views from django.views.static import serve from django.conf import settingsurlpatterns [path(admin/, admin.site.urls),# 注册path(register/, views.reg…

高忆管理:降息是什么意思?降息对股市是利好还是利空?

降息和降准是比较常见的两种货币政策,政府通过它们来完成一定的经济目标,那么,降息是什么意思?降息对股市是利好仍是利空?下面高忆管理为大家预备了相关内容,以供参阅。 降息通常是指央行下降银行的存款、贷…

工时管理魔法课堂:如何在Jira中进行项目时间与成本管理?

工时管理是项目过程管理的一个重要手段,通过科学记录项目组成员在项目执行过程中的任务完成和时间消耗情况,可以帮助管理者精准评估成员工作效率,实时掌握项目进展,并有效管控项目成本。 想成为时间管理大师吗?与 Atl…

成集云 | Gitlab触发事件同步企微通知 | 解决方案

源系统成集云目标系统 方案介绍 GitLab是一个用于仓库管理的开源项目,使用Git作为代码管理工具,并在此基础上搭建Web服务。它由GitLab Inc.开发,基于Ruby on Rails构建,并具有wiki和issue跟踪功能。GitLab主要针对软件…

动态内存管理详解

动态内存管理 1.前言 目前来回顾一下想要在内存中开辟空间有哪些方法? 创建变量: int a 0;//在栈上开辟了4字节的空间创建数组: int arr[10] { 0 };//在栈上开辟40字节的空间 但是这两种开辟方式都有两个特点: 开辟的内存空间…

素材准备——准备用于标注和训练的图片素材——从视频监控视频中生成图片素材

为了实现我们对特定场景下的图像识别功能,我们需要依托YOLO V8工具,对大量的图片进行目标标准和训练。因此我们首先要做的一项工作便是准备大量的用于标准和训练做续的图片。 由于在实际项目中,特别是以公安交管所需要的场景中,我们很难单纯依托网络下载的方式获得所需要的…

通达信接口开发需要执行哪些源码?

通常进行开发通达信接口,则需要执行以下开发文档: 1.1 名称 功能 基本函数 Init API 初始化 Deinit API 反初始化 Logon 登录交易账户 Logoff 登出交易账户 QueryData 查询各类交易数据 QueryHistoryData 查询各类历史数据 …

数字孪生农业|数字乡村建设解决方案

2019年5月,中共中央办公厅、国务院办公厅发布《数字乡村发展战略纲要》,2022年1月,中央网信办、农业农村部等10部门印发《数字乡村发展行动计划(2022-2025年)》,一系列政策文件为数字乡村的建设指明了方向和…

想要让你的设计更具吸引力?试试SOLIDWORKS Visualize!

Visualize用于轻松创建图像动画和交互式内容生成照片质量的图像强大工具集拥有以下突出优势 优势一CPUGPU混合渲染 Visualize可采用GPU进行渲染,解决了CPU占用100%的问题,使得在渲染图片的同时也能轻松完成其他工作任务。 优势二AI降噪器 Visualize 降…