fatal: refusing to merge unrelated histories
This error matches known, documented patterns with reliable solutions.
Quick Fix (Most Common Solution)
- Use --allow-unrelated-histories flag
- Verify you are merging correct branches
Seeing "fatal: refusing to merge unrelated histories"? This error can be frustrating, but it's usually fixable. It typically affects your development workflow or system. Below you'll find clear, step-by-step solutions to resolve this issue.
What This Error Means
The branches you are merging have completely separate commit histories.
Frequently documented in developer and vendor support forums.
Not affiliated with browser, OS, or device manufacturers.
New here? Learn why exact error messages matter →
Common Causes
- Merging different repositories
- Repository initialized separately
- History was rewritten
How to Fix
- Use --allow-unrelated-histories flag
- Verify you are merging correct branches
- Consider fresh clone instead
Last reviewed: April 2026 How we review solutions
Edge Cases
Orphan Branches, gh-pages, and the Two-Root History Problem
gh-pages branch). When you create a gh-pages branch using git checkout --orphan gh-pages, it has no commit history in common with main. Another developer who tries git pull origin gh-pages or merges main changes into gh-pages gets the refusal because the two branches have completely separate ancestry.
The --allow-unrelated-histories flag explicitly permits this merge: git merge --allow-unrelated-histories origin/gh-pages. This creates a merge commit that grafts the two independent histories together. Inspect the result with git log --graph --oneline to verify the structure before pushing.
A second common trigger: creating a new repository on GitHub with "Initialize with a README" checked, then trying to push a local repository that was initialized separately with git init and already has commits. The GitHub-initialized repo has a commit (the README creation) that shares no ancestor with your local repository. The fix: git pull origin main --allow-unrelated-histories merges the README commit into your local history before pushing.
Post-merge, the combined repository history contains two disconnected root commits. This is permanent and visible in git log --oneline --graph. It does not cause any functional issues but surprises contributors who run git log and see two separate commit chains converging at a single merge commit.Optional follow-up
Some users ask whether saving fixes for recurring errors would be useful when the same issue appears again.
Was this explanation helpful?
Frequently Asked Questions
When does this happen?
Usually when merging a new repo with an existing one.
Is allow-unrelated-histories safe?
Yes, but verify contents carefully after merge.
Related Resources
Also Known As
- Git error
- Version control error
- Git command failure
- Repository error
Common Search Variations
- "git push rejected fix"
- "git merge conflict how to resolve"
- "git error what to do"
- "git command failed"
- "fix git repository error"
- "git authentication failed solution"
Related Errors
Still Stuck?
Paste a different error message or upload a screenshot to get help instantly.