在git重新启动/开发过程中,git显示以下错误消息:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

我的Git版本是2.9.0。它在以前的版本中运行良好。

我如何才能继续使用新版本中引入的强制标志来允许不相关的历史?


当前回答

对我来说,我把所有内容都移动到另一个文件夹,然后我做了git pull然后我将文件移回gitadd,然后gitcommit-m“messag”,然后gitpush

其他回答

警告:这可能会覆盖远程存储库

这对我有用:

git push origin master --force

git pull-origin main--允许不相关的历史记录

我在github没问题

在进行git拉动时,我得到了一条致命的消息:拒绝合并不相关的历史记录我有一段时间没有更新本地副本的回购模块。

我运行这个命令只是为了从原点刷新本地。我只想要远程的最新版本,不需要任何本地更改。

git reset --hard origin/master

这解决了我的问题。

我也很挣扎,但我设法找到了解决办法。

当您遇到上面的错误时,只需选择合并提交,然后继续重新启动:

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue

如果您有存储库的浅Git克隆,也会发生这种情况。

我最近在CI/CD设置中遇到了这个问题,以前的解决方案都不适合我。我正在构建一个CI/CD管道,以分析MR源分支的MR创建代码。为此,我需要在main分支上运行一次分析,然后在与main合并的MR源分支上运行分析,在尝试通过gitmerge命令合并分支时出现了这个错误。

CI/CD设置中出现这种情况的原因:通常在CI/CD环境中,Git存储库是一个用来加快速度的浅层克隆,它不包括完整的提交历史,因此,在合并Git时,我们可能会认为我们正在尝试合并不相关的分支,这实际上是不正确的。

解决方案:

使用以下命令将浅存储库转换为非浅存储库:

git fetch --unshallow