当前位置: 首页 > article >正文

Git:merge合并、冲突解决、强行回退的终极解决方案

首先还是得避免冲突的发生,无法避免时再去解决冲突,避免冲突方法:

  • 时常做pull、fatch操作,不要让自己本地仓库落后太多版本;
  • 在分支操作,如切换分支、合并分支、拉取分支前,及时清理Change,保持自己分支洁净;
  • 在合并分支时,先拉取后合并,最好是切换到要合并的分支,拉取代码,再切回自己的分支拉取合并分支的代码;
  • 对于不确定的分支,在操作前,先比较分支的差异,做到心里有数;
  • 合并代码,慎重使用Cherry-Pick,可能会出现冲突;

1、合并处理

方法一:git网址上提交合并请求

方法二:idea 操作 merge

操作原理:当前分支一定是目标分支,一定到检出到目标分支

目标分支:就是合入的远程总分支:如dev、master)

源分支: 就是你自己的开发分支

idea 的 merge 操作页面如下:

2、冲突解决方案

如果不想解决,点Cancel,后面可以在分支上选择Resolve Conflicts...(继续解决),或者点Abort Merge(放弃合并)

Abort Merge:放弃合并,Abort,夭折的意思;

Resolve Conflicts…:解决冲突;

如果是Cherry-Pick出现的冲突,在下拉列表最下面,会有Abort Cherry-Pick的选项

 手动处理冲突的时候,需要看清楚左右两边的内容准确合入中间的最终结果中,不要冲掉远程的内容代码

3、回退已经merge后的代码

这里的回退代码提交有两种情况:

  • 回退合并之后并未push
  • 回退合并之后并push(也就是强行回退)

3.1、回退合并之后并未push

这种情况比较好处理了就,找到git合并记录,通过reset-hard回退(hard是强回退,不保留本地的回退记录,这时你就要保证要回退的内容在自己的开发分支上是已经push过的,这样就不会丢失reset-hard的代码)

操作reset之后,本地的合并记录就清理了,然后重新合并处理 

3.2、回退合并之后并push(也就是强行回退)

第一步先操作这一步:git reset hard

第二步:执行 git push force

通过命令执行,强行退回更新分支

至此,你合并并push的代码被强行回退,但是在你的开发分支还是有你的回退之前的代码的,重新提交合并请求即可!

4、Git cherry-pick 功能

Git:cherry-pick 的功能介绍及使用流程 >>点击查看....


http://www.kler.cn/a/487944.html

相关文章:

  • Vue2: el-table为每一行添加超链接,并实现光标移至文字上时改变形状
  • python学opencv|读取图像(二十九)使用cv2.getRotationMatrix2D()函数旋转缩放图像
  • 24下半年软考「单独划线」合格标准已公布!
  • 【git】在服务器使用docker设置了一个gogs服务器,访问和现实都不理想
  • LeetCode -Hot100 - 53. 最大子数组和
  • 精度论文:【Coordinate Attention for Efficient Mobile Network Design】
  • 社交新零售下开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的创新实践与发展剖析
  • 【MySQL】数据库可视化工具,MySQL命令
  • ClickHouse vs StarRocks 选型对比
  • 红帽认证 VS 华为HCIP哪个有用?
  • 执行这个composer require topthink/think-mongo 报错
  • elasticsearch常见故障汇总
  • 2025年伊始:回顾 ChatGPT 引发的 AI 变革以及未来展望
  • xfs扩容目录lvm
  • 2025年XR行业展望:超越虚拟,融合现实
  • 浏览器网络插件
  • Linux 正则表达式 ⑪
  • 动漫周边商城系统|Java|SSM|VUE| 前后端分离
  • 【网络安全渗透测试零基础入门】之XSS攻击获取用户cookie和用户密码(实战演示)
  • HarmonyOS(ArkUI框架介绍)
  • 集成Log4j2以及异步日志
  • C++ 各标准的新特性
  • 【Oracle专栏】实用SQL、查询处理
  • 【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列
  • 跨域问题,开发
  • QML states和transitions的使用