AI Diagnostic Summary

fatal: refusing to merge unrelated histories

Well-Documented Error

This error matches known, documented patterns with reliable solutions.

Quick Fix (Most Common Solution)

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.

High confidence
What This Error Means

The branches you are merging have completely separate commit histories.

Frequently documented in developer and vendor support forums.

Based on documented solutions and common real-world fixes.
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
  1. Use --allow-unrelated-histories flag
  2. Verify you are merging correct branches
  3. Consider fresh clone instead

Last reviewed: April 2026 How we review solutions

Edge Cases

Orphan Branches, gh-pages, and the Two-Root History Problem

Git's refusal to merge unrelated histories is most commonly encountered with GitHub Pages (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?

Explanations are based on documented fixes, real-world reports, and common system behavior. GetErrorHelp is independent and not affiliated with software vendors, device manufacturers, or service providers.
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

Common Search Variations

Related Errors
Still Stuck?

Paste a different error message or upload a screenshot to get help instantly.

Solutions are based on commonly documented fixes and may not apply in all situations.