我是靠谱客的博主 义气小懒猪,最近开发中收集的这篇文章主要介绍git merge 合并分支时遇上refusing to merge unrelated histories的解决方案前言方法一、合并分支时允许合并不相关的历史方法二、使用 git reset --hard 命令将feature分支覆盖到master分支,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 方法一、合并分支时允许合并不相关的历史
  • 方法二、使用 git reset --hard 命令将feature分支覆盖到master分支


前言

最近一个从其他地方迁入公司自己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

命令强制推送

最后

以上就是义气小懒猪为你收集整理的git merge 合并分支时遇上refusing to merge unrelated histories的解决方案前言方法一、合并分支时允许合并不相关的历史方法二、使用 git reset --hard 命令将feature分支覆盖到master分支的全部内容,希望文章能够帮你解决git merge 合并分支时遇上refusing to merge unrelated histories的解决方案前言方法一、合并分支时允许合并不相关的历史方法二、使用 git reset --hard 命令将feature分支覆盖到master分支所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部