Search code examples
gitgit-merge

How does "not something we can merge" arise?


This is a new one to me. I'm a fairly experienced user of git, and have just added a remote to a repo that was forked from mine, fetched the updates and then tried to merge them in:

$ git merge HEAD f6ff240dbf47234249a68b34c8a98bb11237aa7
fatal: f6ff240dbf47234249a68b34c8a98bb11237aa7 - not something we can merge

There is next to nothing on the web about this error message, which shocks me. The nearest thing I can find is this page about being in a detached head state. But git status reports that I am on branch master.

You can see the repositories I am trying to use on github - my repo and the remote I want to pull from. At the time of writing, master of my repo is at 6dc048862a93ffba6cd37883fd43e40651f248c1.

Looking at the history I can see where the forks diverge, and I am trying to merge a commit from 3 commits up the fork. It doesn't seem that hard.

To replicate for yourself you could do:

git clone https://github.com/aptivate/dye
cd dye
git remote add qris git://github.com/qris/ping-dye.git
git fetch qris
git checkout master
git merge f6ff240dbf47234249a68b34c8a98bb11237aa7

Solution

  • It's quite simple: f6ff240dbf47234249a68b34c8a98bb11237aa7 doesn't exist.

    I just realize you mean 3f6ff240dbf47234249a68b34c8a98bb11237aa7 (Note the missing 3 at the beginning) Just go to the commit list and type Ctrl+f f6ff.

    If that is someone you know, you should tell them to always branch from master and commit their custom changes there (for every change), instead of committing directly into master. Then he doesn't need to rebase and force-push the changes from upstream (you) and you only have to merge the specific story-branches.