You can use --allow-unrelated-histories to force the merge to happen.
The reason behind this is that 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-historiesoption 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.
More information can be found in this answer.
Answer from blue112 on Stack OverflowYou can use --allow-unrelated-histories to force the merge to happen.
The reason behind this is that 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-historiesoption 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.
More information can be found in this answer.
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
bitbucket - GIT Fatal : refusing to merge unrelated histories - Stack Overflow
Subtree pull shows "fatal: refusing to merge unrelated histories”
How to deal with "refusing to merge unrelated histories" error
Sourcetree error when trying to pull from reposito...
Since Git 2.9 (April 2016), you can try:
git pull --allow-unrelated-histories origin master
But check why those branches are no longer common though.
Maybe there was a force push rewriting all the history of origin/master.
In which case, if you don't have local commits of your own, it is best to reset your branch to the new one:
Warning: this will delete any untracked file, and reset your repository to origin/master
(You can try it in a copy of your current local clone)
git fetch
# Warning: RESET AHEAD
git reset --hard origin/master
I did meet the same issue, and try the command it gets work.
git merge abbranch --allow-unrelated-histories
here we assume that abbranch is unrelated to current branch. Above command merge abbranch to current branch.