Sentry Answers>Git>

Merge branches with unrelated histories in Git

Merge branches with unrelated histories in Git

David Y.

The Problem

During a Git merge, I encounter the following error message:

Click to Copy
fatal: refusing to merge unrelated histories Error redoing merge

How can I fix this error and complete the merge?

The Solution

Git is very flexible and allows us to do things that may not be intuitive for a source control program, such as creating branches in the same repository that have entirely different contents and commit histories. This has some practical uses, such as the gh-pages branch used to publish websites on GitHub Pages.

However, if we attempt to merge two branches without a common base commit, we will encounter this error, which was introduced in Git 2.9.0 to prevent accidental merges of this type, as they are quite unusual.

If this error occurs during a merge that is not intended to combine two separate codebases, there may be a problem with our local Git repository. Reclone the remote version of the repository in a different directory and migrate any local changes there before attempting the merge again.

If we are attempting to combine two separate codebases, we must pass the flag --allow-unrelated-histories to git merge:

Click to Copy
git merge --allow-unrelated-histories
  • Syntax.fmListen to the Syntax Podcast
  • ResourcesWhat is Distributed Tracing
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

© 2024 • Sentry is a registered Trademark of Functional Software, Inc.