Search code examples
gitmerge

Git merge is not possible because I have unmerged files


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?


Solution

  • 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.