0


git merge 合并分支时遇上refusing to merge unrelated histories的解决方案

文章目录


前言

最近一个从其他地方迁入公司自己git服务的项目出现了一些奇怪的现象,feature分支为当前开发分支,准备往master上合并的时候发现master分支的起点跟feature的起点不同,并且master的初次提交记录比feature更晚,目前不知道是什么操作引起的,但是合并分支的时候提示了一个“refusing to merge unrelated histories”的错误,后来找到两个解决方案,记录一下

方法一、合并分支时允许合并不相关的历史

参考链接:https://www.cnblogs.com/jinbang/p/8920252.html

在合并分支提示“refusing to merge unrelated histories”的错误,是由于两个分支拥有不相关的提交历史,所以是拒绝合并的,如果确实需要合并,则可以在执行merge命令时指定一个 --allow-unrelated-histories 的参数,会允许合并不相关的历史。

例如,合并feature分支到master分支:

原本的命令

git merge feature

修改后命令

git merge feature --allow-unrelated-histories

即可成功合并,确认没有问题之后提交分支


方法二、使用 git reset --hard 命令将feature分支覆盖到master分支

参考链接:https://www.cnblogs.com/justdoyou/p/11389623.html

使用方法一会保留之前master分支上提交的记录,而且feature分支的记录会变成一条总的记录到master分支上,这个不是我们想要的效果,我们比较希望丢弃master原来的提交记录,而将feature的所有记录都覆盖到master上

特别注意
特别注意
特别注意
本操作是将feature分支的提交记录覆盖到master分支上,所以master分支上之前的提交记录将全部丢失,我不清楚是否可以恢复,所以请谨慎操作,确定被覆盖的分支不需要之后再进行操作!!

步骤
1、先切换到mster分支

git checkout master

2、使用reset命令重设hard

git reset --hard  origin/feature

执行完以上的命令,master分支就被远程的feature分支所覆盖,如果没有问题就可以提交了,提交时需要使用

git push -f

命令强制推送


本文转载自: https://blog.csdn.net/quhan97/article/details/122726787
版权归原作者 冫安然 所有, 如有侵权,请联系我们删除。

“git merge 合并分支时遇上refusing to merge unrelated histories的解决方案”的评论:

还没有评论