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

GitHub工程git merge出现冲突处理方式

GitHub工程git merge出现冲突处理方式

  • 1. 源由
  • 2. 冲突解决
    • 2.1 触发合并冲突
    • 2.2 查看冲突状态
    • 2.3 打开冲突文件
    • 2.4 解决冲突
    • 2.5 标记冲突已解决
    • 2.6 继续合并
    • 2.7 检查合并结果
  • 3. 示例

1. 源由

在产品研发中,常见的技术动作就是merge,而这个操作通常有两种场景:

  1. 【产品开发】根据PR内容,分析代码,解决冲突;
  2. 【版本管理】根据冲突类型:a) 简单合并,合入版本;b) 复杂合并,提交backport issue

不管选择何种流程,最终技术层面的操作是一样的。

2. 冲突解决

在使用 Git 进行分支合并时,可能会遇到合并冲突。合并冲突通常发生在两个分支都修改了同一个文件的同一个部分,Git 无法自动决定应该保留哪一部分的修改。这时需要手动解决冲突。以下是处理 Git 合并冲突的步骤:

2.1 触发合并冲突

$ git merge <branch-name>

例如:

$ git merge feature-branch

2.2 查看冲突状态

合并过程中如果遇到冲突,Git 会提示你冲突文件。可以使用以下命令查看冲突文件:

$ git status

2.3 打开冲突文件

在冲突文件中,你会看到类似这样的标记:

    <<<<<<< HEAD当前分支的代码=======目标分支的代码>>>>>>> branch-name

你需要手动编辑这些文件,选择保留的代码,或者合并两者的代码。

2.4 解决冲突

手动编辑文件,删除冲突标记 <<<<<<<, =======, 和 >>>>>>>,并保留正确的代码。

2.5 标记冲突已解决

在解决完所有冲突并保存文件后,需要告诉 Git 冲突已经解决:

$ git add <file-name>

例如:

$ git add conflicted-file.txt

2.6 继续合并

所有冲突解决并 git add 后,完成合并:

$ git commit

有时 Git 会自动生成一个合并消息,你只需保存并退出编辑器。

2.7 检查合并结果

确保一切正常,可以使用:

$ git log

确认合并完成。

3. 示例

假设在合并 feature-branchmain 分支时遇到冲突:

# 切换到 main 分支
$ git checkout main# 合并 feature-branch 到 main
$ git merge feature-branch
# 这里可能会看到冲突提示# 查看冲突状态
$ git status# 打开冲突文件并手动解决冲突
$ nano conflicted-file.txt# 标记冲突已解决
$ git add conflicted-file.txt# 完成合并
$ git commit

通过以上步骤,你可以有效地解决 Git 合并冲突。

相关文章:

  • 接口请求的六种常见方式详解(get、post、head等)
  • C语言:结构体数组
  • FastWeb网站开发之拦截器(interceptor)使用教程
  • 课时151:项目发布_基础知识_技术要点
  • 分布式事务AP控制方案(下)
  • 数据结构之线性表(3)
  • 14. RTCP 协议
  • Kafka的分区副本机制
  • 小熊家务帮day19-day21 订单模块2(取消订单,退款功能等)
  • OBS 录屏软件 for Mac 视频录制和视频实时交流软件 安装
  • 类和对象(上续)
  • 力扣 T62 不同路径
  • leetcode389:找不同
  • XUbuntu24.04之制作ISO镜像启动盘(二百四十八)
  • module ‘django_cas_ng.views‘ has no attribute ‘login‘
  • Google 是如何开发 Web 框架的
  • 10个最佳ES6特性 ES7与ES8的特性
  • codis proxy处理流程
  • echarts花样作死的坑
  • EOS是什么
  • js正则,这点儿就够用了
  • mongo索引构建
  • PHP的类修饰符与访问修饰符
  • Python语法速览与机器学习开发环境搭建
  • storm drpc实例
  • Webpack 4x 之路 ( 四 )
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 构建二叉树进行数值数组的去重及优化
  • 猴子数据域名防封接口降低小说被封的风险
  • 前端性能优化——回流与重绘
  • 删除表内多余的重复数据
  • 算法之不定期更新(一)(2018-04-12)
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 中文输入法与React文本输入框的问题与解决方案
  • 转载:[译] 内容加速黑科技趣谈
  • ​马来语翻译中文去哪比较好?
  • #if 1...#endif
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #微信小程序:微信小程序常见的配置传值
  • (3)选择元素——(17)练习(Exercises)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (k8s)kubernetes 部署Promehteus学习之路
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (黑马点评)二、短信登录功能实现
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (南京观海微电子)——示波器使用介绍
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)基于IDEA的JAVA基础12
  • (转)ORM
  • (转)四层和七层负载均衡的区别
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .describe() python_Python-Win32com-Excel
  • .gitignore文件设置了忽略但不生效