Git refusing to merge unrelated histories on rebase
Solution 1:
The default behavior has changed since Git 2.9:
"git merge" used to allow merging two branches that have no common base by default, which led to a brand new history of an existing project created and then get pulled by an unsuspecting maintainer, which allowed an unnecessary parallel history merged into the existing project. The command has been taught not to allow this by default, with an escape hatch
--allow-unrelated-histories
option to be used in a rare event that merges histories of two projects that started their lives independently.
See the Git release changelog for more information.
You can use --allow-unrelated-histories
to force the merge to happen.
Solution 2:
In my case, the error was just fatal: refusing to merge unrelated histories
on every try, especially the first pull request after remotely adding a Git repository.
Using the --allow-unrelated-histories
flag worked with a pull request in this way:
git pull origin branchname --allow-unrelated-histories
As per 2.9.0 release notes - git pull
has been taught to pass the --allow-unrelated-histories
option to underlying git merge