Version Control System (VSC)

How to fix the error “Fatal Refusing to Merge Unrelated Histories Git”


Git is a DevOps tool for managing source code. It is a version control system that can efficiently manage small to very large projects and is free and open-source. Git is a tool used to log source code changes, allowing several engineers to collaborate on non-linear development. You can set up and start using Git locally on your system easily for fast deployment between your local Git Repository and remote Git Repository. When you use Git locally, your computer stores both your files and their historical information while you can also push a copy of the files and their revision history to the remote servers (like GitHub or Bitbucket).

Learn more about Git from the following post: Git command not found: How to fix Git is not recognized as an internal or external command, Git Vulnerability: Git for Windows uninstaller is vulnerable to DLL hijacking when run under the SYSTEM user account, How to Set Up and Use an Upstream Branch in Git, How to Setup HTTPS users using Git credentials and Pushing Code to AWS CodeCommit

You can cooperate with other developers more simply if you have a central location where you can publish and download changes from others. Two persons can even work on different sections of the same file and later integrate those changes without losing each other’s work because Git can automatically merge the changes. When it comes to merging files with unrelated histories, you are likely to encounter the error that says: “Fatal Refusing to Merge Unrelated Histories Git” I’m about to show you how to resolve it in this post.

Let’s Fix Fatal Refusing to Merge Unrelated Histories Git

Let me explain briefly what Merging in Git is all about before moving forward. Merging is Git’s way of putting a forked history back together again. The git merge command lets you take the independent lines of development created by git branch and integrate them into a single branch.

You are likely to encounter this error when you are carrying out the following tasks using Git:

  1. When you are pushing your first file from your local repository (Local PC) to the remote repository with the git push origin master or main command
  2. When you are pulling changes made by other developers from the remote repository (GitHub Server) to your local repository with the git pull origin master or main command.
  3. Or it could happen when you’re trying to merge one branch with another branch.

Whichever way, all you need is to add the flag --allow-unrelated-histories at the end of the command. For instance, if you are pushing from a local repository to a remote repository and you experience an error similar to the one shown below.

Git Merge Conflict

Of course, what is supposed to be done now is to pull changes from a remote repository and merge it with the one on a local repository with the git pull origin master or main command but doing that will still result in an error shown below: To resolve the above error,

Git Refusing to merge unrelated histories

Now you need to fix the refusing to merge error by running:

git pull origin master --allow-unrelated-histories
Git Merge conflict fixed

I hope you found this blog post helpful. Please let me know in the comment session if you have any questions.

Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x