在git rebase origin/development以下错误消息从git显示:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Run Code Online (Sandbox Code Playgroud)
我的git版本是2.9.0.用于在以前的版本中正常工作.
如何通过新版本中引入的强制标记继续使用此rebase,从而允许不相关的历史记录?
blu*_*112 2332
自git 2.9以来,默认行为已更改:
"git merge"用于允许合并默认情况下没有公共基础的两个分支,这导致创建现有项目的全新历史,然后由不知情的维护者提取,这允许将不必要的并行历史合并到现有项目中.默认情况下,该命令已被教导不允许这样做,并且
--allow-unrelated-histories在一个罕见的事件中使用了一个转义填充选项,该事件合并了两个独立开始生命的项目的历史记录.
有关更多信息,请参阅git release changelog.
您可以使用--allow-unrelated-histories强制合并发生.
adi*_*adi 1037
就我而言,fatal: refusing to merge unrelated histories在远程添加git repo之后,错误只是在每个特别是第一次拉取请求上.
使用--allow-unrelated-historiesflag以这种方式处理pull请求:
fatal: refusing to merge unrelated histories
Ogb*_*lis 552
请尝试以下命令
__CODE__
这应该可以解决你的问题.
小智 220
我首先设置本地存储库时遇到此错误.然后去了github并创建了一个新的存储库.然后我跑了
git remote add origin <repository url>
Run Code Online (Sandbox Code Playgroud)
当我试图推/拉时,我得到了同样的fatal: unrelated_histories错误.以下是我修复它的方法:
git pull origin master --allow-unrelated-histories
git merge origin origin/master
... add and commit here...
git push origin master
Run Code Online (Sandbox Code Playgroud)
VIK*_*HLI 146
为此,请输入命令:
git pull origin branchname --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
例如:
git pull origin master --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
参考:
小智 127
我运行了这个命令,问题得到了解决。
git pull origin branchName --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
查看此页面了解更多信息。
MJ *_*tes 102
git pull origin <branch> --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
您将被带到Vim编辑窗口:
git push --set-upstream origin <branch>Aam*_*imi 99
我有同样的问题.试试这个:
git pull origin master --allow-unrelated-histories
git push origin master
Run Code Online (Sandbox Code Playgroud)
Fed*_*Baù 74
执行?时出现此错误git pull origin master:
fatal: refusing to merge unrelated histories
Run Code Online (Sandbox Code Playgroud)
git pull origin master --allow-unrelated-histories
git pull origin main --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
“致命:拒绝合并不相关的历史”Git 错误发生在两个不相关的项目合并时(即,项目不知道彼此的存在并且提交历史不匹配)。
命令GIT HUB DOCS --allow-unrelated-history:
--allow-unrelated-history
默认情况下, git merge 命令拒绝合并不共享共同祖先的历史。当合并两个独立开始的项目的历史时,此选项可用于覆盖此安全性。由于这是一种非常罕见的情况,默认情况下不存在启用此功能的配置变量,也不会添加。
Ami*_*emi 55
对于 Android Studio 和 IntelliJ:
首先,提交所有内容并解决任何冲突。
然后从IDE下面打开终端并输入:
git pull origin master --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
现在你可以推了。
Dan*_*rov 45
尝试 git pull --rebase development
Ani*_*til 33
警告这可能会覆盖远程存储库
这为我工作:
git push origin master --force
Run Code Online (Sandbox Code Playgroud)
cda*_*uth 32
由于所有其他答案实际上都没有回答问题,因此这个答案的灵感来自相关问题的答案.
所以你得到你的错误做git rebase:
$ git rebase origin/development
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Run Code Online (Sandbox Code Playgroud)
此错误实际上不会取消rebase,但您现在处于中间位置:
$ git status
interactive rebase in progress; onto 4321beefdead
Last command done (1 command done):
pick 1234deadbeef1234deadbeef test merge commit
Run Code Online (Sandbox Code Playgroud)
所以你现在可以手动完成合并.找出原始合并提交的父提交:
$ git log -1 1234deadbeef1234deadbeef
commit 1234deadbeef1234deadbeef
Merge: 111111111 222222222
Author: Hans Dampf
Date: Wed Jun 6 18:04:35 2018 +0200
test merge commit
Run Code Online (Sandbox Code Playgroud)
找出两个合并父项中的哪一个是合并到当前的那个(可能是第二个,验证git rebase),然后手动执行合并,复制原始合并提交的提交消息:
$ git merge --allow-unrelated 222222222 --no-commit
Automatic merge went well; stopped before committing as requested
$ git commit -C 1234deadbeef1234deadbeef
[detached HEAD 909af09ec] test merge commit
Date: Wed Jun 6 18:04:35 2018 +0200
$ git rebase --continue
Successfully rebased and updated refs/heads/test-branch.
Run Code Online (Sandbox Code Playgroud)
oiy*_*yio 29
首先使用以下命令将远程更改拉到本地:
git pull origin branchname --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
** 在我的情况下,分支名称是主。
当 pull 命令完成时,就会发生冲突。你应该解决冲突。我使用 Android Studio 来解决冲突。

当冲突解决后,合并就完成了!
现在您可以安全地推动。
小智 27
我有同样的问题。问题很遥远,有些东西阻止了这种情况。
我首先创建了一个本地存储库。我在本地添加了一个LICENSEand README.md文件并提交。
然后我想要一个远程存储库,所以我在GitHub上创建了一个。在这里,我检查“使用README初始化此存储库”时犯了一个错误,该错误也在远程创建了README.md。
所以现在当我跑步
git push --set-upstream origin master
Run Code Online (Sandbox Code Playgroud)
我有:
error: failed to push some refs to 'https://github.com/lokeshub/myTODs.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes
(e.g. hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
现在克服这个我做了
git pull origin master
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
From https://github.com/lokeshub/myTODs
branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories**
Run Code Online (Sandbox Code Playgroud)
我试过了:
git pull origin master --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
结果:
From https://github.com/lokeshub/myTODs
* branch master -> FETCH_HEAD
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed;
fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)
解:
我删除了远程存储库并创建了一个新文件(我认为只有删除文件README才行),然后下面的文件就可以了:
git remote rm origin
git remote add origin https://github.com/lokeshub/myTODOs.git
git push --set-upstream origin master
Run Code Online (Sandbox Code Playgroud)
San*_*dam 23
当您第一次提交到远程存储库时,通常会发生这种情况。由于错误明确指出“拒绝合并无关的历史记录”,因此我们需要使用--allow-unrelated-histories标志。
git pull origin master --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
现在会有一些冲突,我们必须手动解决。之后,只需提交代码并推送即可。
小智 17
我试过git pull --allow-unrelated-histories没有用,但对我来说解决这个问题的是:
我将桌面存储库中的所有文件复制到另一个文件夹,然后删除了该文件夹。
然后我再次克隆 repo,因为它是一个新项目。
当我再次复制我的文件并推送它时,它就像魅力一样。
str*_*r77 16
在执行 a 时git pull,我收到了一条fatal: refusing to merge unrelated histories
关于我有一段时间没有更新本地副本的 repo 模块的消息。
我运行这个命令只是为了从原点刷新本地。我只想要远程的最新版本,不需要任何本地更改。
git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)
这在我的情况下修复了它。
el_*_*gro 13
我也在努力解决这个问题,但设法找到了解决方法.
当您遇到上述错误时,只需选择合并提交,然后继续使用rebase:
git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题:
这就是我所做的:
git pull origin main --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
我使用 Visual Studio Code 来解决合并冲突,然后我这样做了:
git commit -m "commit message"
git push origin main
Run Code Online (Sandbox Code Playgroud)
对于 Google 员工:
如果您在 GitHub 上创建了一个新的存储库,并且不小心使用README或.gitignore文件对其进行了初始化。
如果您发现自己无法合并或变基,因为.git文件夹已损坏。
然后:
git clone现在本地和远程将有“相关历史”,并且会愉快地合并或变基。
blue112的答案并没有解决这个问题,这是在变基的背景下。
\n同步两个分歧分支的唯一方法是将它们合并在一起,从而产生额外的合并提交和两组包含相同更改的提交(原始提交和来自重新基准分支的提交)。不用说,这是一个非常令人困惑的情况。
\n所以,在你运行之前git rebase,总是问自己,\xe2\x80\x9c还有其他人在看这个分支吗?\xe2\x80\x9d如果答案是肯定的,就把你的手从键盘上拿开,开始考虑一种非破坏性的方法进行更改(例如命令git revert)。否则,你\xe2\x80\x99可以安全地重写历史记录。
参考:变基黄金法则
\n通过切换allow-unrelated-histories开关来解决错误。在 git pull 或 git merge 命令之后,添加以下标签:
git pull origin master --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
之后你可能会遇到冲突。所以解决了冲突并提交。这对我有用。
对于我的情况,我想将不相关的历史分支合并到我的当前分支:
git merge <-unrelated-history-branch-name> --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)
小智 5
如果有人在执行 rebase 分支时遇到同样的问题,--allow-unrelated-histories也请使用这个git pull origin <branch-name> --allow-unrelated-histories --no-ff希望它可以帮助某人
| 归档时间: |
|
| 查看次数: |
1227495 次 |
| 最近记录: |