Git merge is not possible because I have unmerged files

GitMerge

Git Problem Overview


git continues to confuse me with its unhelpful error warnings This one really deserves a prize:

git merge is not possible because you have unmerged files

My situation: My master branch on github was edited (directly in the browser) while my local master branch was also edited.

I wrongly suppose you could simply merge the two versions and be done with it, but also, I cannot merge - because my files are unmerged.

git merge remote/master

results in

error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

So, after adding and committing the local change and then trying to merge again, I get:

merge: remote/master - not something we can merge

Clearly I am missing something essential here... Do I have the wrong idea about what merging means? How do I fix this issue of having a different remote master / local master branch?

Git Solutions


Solution 1 - Git

I repeatedly had the same challenge sometime ago. This problem occurs mostly when you are trying to pull from the remote repository and you have some files on your local instance conflicting with the remote version, if you are using git from an IDE such as IntelliJ, you will be prompted and allowed to make a choice if you want to retain your own changes or you prefer the changes in the remote version to overwrite yours'. If you don't make any choice then you fall into this conflict. all you need to do is run:

git merge --abort # The unresolved conflict will be cleared off

And you can continue what you were doing before the break.

Solution 2 - Git

The error message:

> merge: remote/master - not something we can merge

is saying that Git doesn't recognize remote/master. This is probably because you don't have a "remote" named "remote". You have a "remote" named "origin".

Think of "remotes" as an alias for the url to your Git server. master is your locally checked-out version of the branch. origin/master is the latest version of master from your Git server that you have fetched (downloaded). A fetch is always safe because it will only update the "origin/x" version of your branches.

So, to get your master branch back in sync, first download the latest content from the git server:

git fetch

Then, perform the merge:

git merge origin/master

...But, perhaps the better approach would be:

git pull origin master

The pull command will do the fetch and merge for you in one step.

Solution 3 - Git

It might be the Unmerged paths that cause

error: Merging is not possible because you have unmerged files.

If so, try:

git status

if it says > You have unmerged paths.

do as suggested: either resolve conflicts and then commit or abort the merge entirely with

git merge --abort

You might also see files listed under Unmerged paths, which you can resolve by doing

git rm <file>

Solution 4 - Git

I ran into the same issue and couldn't decide between laughing or smashing my head on the table when I read this error...

What git really tries to tell you: "You are already in a merge state and need to resolve the conflicts there first!"

You tried a merge and a conflict occured. Then, git stays in the merge state and if you want to resolve the merge with other commands git thinks you want to execute a new merge and so it tells you you can't do this because of your current unmerged files...

You can leave this state with git merge --abort and now try to execute other commands.

In my case I tried a pull and wanted to resolve the conflicts by hand when the error occured...

Solution 5 - Git

I also had similar problems.

My probblem: when I merge branch, and resolve conflicts with IDE, the IDE will show commit panel board normally, but it does not.

I think I have merged successfully, but when I push or pull,git remind me " commit your changes before merging" or "Updates were rejected because the tip of your current branch is behind".

My solution: git merge --continue

if you want to abort this merge ,you can also run git merge --abort

Solution 6 - Git

Another potential cause for this (Intellij was involved in my case, not sure that mattered though): trying to merge in changes from a main branch into a branch off of a feature branch.

In other words, merging "main" into "current" in the following arrangement:

main
  |
  --feature
      |
      --current

I resolved all conflicts and GiT reported unmerged files and I was stuck until I merged from main into feature, then feature into current.

Solution 7 - Git

Something that happened to me, if you tried to do merge before and resolved some conflicts on the incoming branch, git can do some changes on its own on your current branch, so try git status even if you are sure that no modifications have been made by yourself, then something like this might appear: They did it!

then simply do git add . git commit -m "message" and try to do the merge again

Solution 8 - Git

The simple way is type git status into your terminal window/cmd. This should show you the files that either need to be added or removed enter image description here

and then you can either do git add followed by the file path or remove them with git rm also followed by the file path.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKokodokoView Question on Stackoverflow
Solution 1 - GitMosaku AbayomiView Answer on Stackoverflow
Solution 2 - GitJonathan.BrinkView Answer on Stackoverflow
Solution 3 - GitTomasz BartkowiakView Answer on Stackoverflow
Solution 4 - GitTobias NeisView Answer on Stackoverflow
Solution 5 - GitlevinView Answer on Stackoverflow
Solution 6 - GitdavidjmcclellandView Answer on Stackoverflow
Solution 7 - GitCAVView Answer on Stackoverflow
Solution 8 - GitA ParsView Answer on Stackoverflow