解决Git merge时报错:refusing to merge unrelated histories问题

 更新时间:2024年10月21日 14:43:58   作者:洛上言  
在使用Git进行分支合并时,可能会遇到"refusing to merge unrelated histories"错误,这是因为尝试合并的两个分支具有不相关的历史记录,解决方法包括使用--allow-unrelated-histories参数来合并分支,保留各自历史,或者直接用一个分支的内容覆盖另一个分支

一、问题

今天将feature分支合并到master时报错:refusing to merge unrelated histories(拒绝合并无关历史)

报错原因:

当尝试从远程仓库"gitee.com:zpg13/system_school"的master分支拉取最新更新并合并到本地的master分支时,Git拒绝了这次合并,原因是两个分支拥有不相关的历史记录。

二、解决办法

1、将feature分支的东西追加到master分支中

这种方法会保留master分支里原本的内容,并且 future的历史记录 会 合并到 master的历史记录中

步骤:

首先切换到master分支

git checkout master

然后在执行merge指令的时候添加上: --allow-unrelated-histories 参数

git merge feature --allow-unrelated-histories

执行

git merge feature --allow-unrelated-histories

命令后,可能会出现以下界面:Git要求您提供一个提交消息来解释为什么这次合并是必要的。

请在编辑器中输入您想要的提交消息,然后按Esc键退出编辑模式,再按:wq输入并按Enter键保存并退出Vim编辑器。

如果您不想进行任何合并操作,只需按Esc键退出编辑模式,然后在命令行中输入:q并按Enter键退出Vim编辑器。

请注意,如果存在合并冲突,您需要先解决这些冲突,然后再继续合并操作。

此时就会提示合并成功,然后正常推送到远程分支即可

2、将feature里的东西直接覆盖到master分支中

这种方法会丢失master中的所有数据,并且将feature中的历史记录同步到master的历史记录中

先来看看合并前feature的历史记录:

然后再看看合并前master的历史记录:

合并过程:

首先切换到master分支

git checkout master

然后使用以下命令进行合并

git reset --hard origin/feature

再次查看master分支的日志时可以发现,master中的历史记录已经替换成了feature的历史记录

然后推送的时候使用 -f 参数,强推到远程仓库即可

git push origin master -f

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何通过阿里云实现动态域名解析DDNS的方法

    如何通过阿里云实现动态域名解析DDNS的方法

    这篇文章主要介绍了如何通过阿里云实现动态域名解析DDNS的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Git基础学习之标签tag的使用详解

    Git基础学习之标签tag的使用详解

    标签对象(tag object) 非常类似于一个提交对象,它包含一个标签创建者信息、一个日期、一段注释信息,以及一个指针。本文主要介绍了Git 标签tag的使用,需要的可以参考一下
    2022-10-10
  • 有关将idea的系统配置文件移到其它盘激活失效的问题

    有关将idea的系统配置文件移到其它盘激活失效的问题

    这篇文章给大家介绍win7系统盘空间不足,发现idea2019.3 占3.4G,将idea的系统配置文件移到其它盘,激活失效的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-11-11
  • i++循环与i-–循环的执行效率(递增与递减效率)

    i++循环与i-–循环的执行效率(递增与递减效率)

    i++循环与i-–循环的执行效率(递增与递减效率),需要的朋友可以参考下。
    2011-01-01
  • 如何使用Git优雅的回滚实现

    如何使用Git优雅的回滚实现

    这篇文章主要介绍了如何使用Git优雅的回滚实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • VSCode中ESLint插件修复以及配置教程

    VSCode中ESLint插件修复以及配置教程

    最近为vsocde配置Eslint出现了许多问题,我解决问题之后,觉得还是把这些坑都写清楚,方便学习前端的初学者,下面这篇文章主要给大家介绍了关于VSCode中ESLint插件修复以及配置教程的相关资料,需要的朋友可以参考下
    2022-12-12
  • 防范SQL注入式攻击

    防范SQL注入式攻击

    SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。
    2009-07-07
  • IDEA+Git+Gitlab使用详细教程

    IDEA+Git+Gitlab使用详细教程

    这篇文章主要介绍了IDEA+Git+Gitlab使用详细教程,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 解决idea git切换多个分支后maven不生效的问题

    解决idea git切换多个分支后maven不生效的问题

    这篇文章主要介绍了解决idea git切换多个分支后maven不生效的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 使用TeXLive2022和VSCode安装配置步骤(LaTeX写论文)

    使用TeXLive2022和VSCode安装配置步骤(LaTeX写论文)

    这篇文章主要介绍了使用TeXLive2022和VSCode的安装配置步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论