当前位置: 代码网 > it编程>编程语言>其他编程 > 解决Git merge时报错:refusing to merge unrelated histories问题

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

2024年10月22日 其他编程 我要评论
一、问题今天将feature分支合并到master时报错:refusing to merge unrelated histories(拒绝合并无关历史)报错原因:当尝试从远程仓库"gitee

一、问题

今天将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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com