You may not want to merge
, but rather to rebase
. That is, take the commits you've made, the commits you added to branch development
—the ones that were not there when you first did your clone
, but are there now—and see what changes each one made in sequence; and apply those changes, again in sequence, on top of branch production
.
(Some of them will probably not go in cleanly: changes to production
that are not present in development
will mean that some, maybe many, of the changes you made need to be modified to fit in. Worse, changing one of your changes will almost certainly affect more of your changes, so this rebase could be difficult.)
That said... "Up to date" does not mean the code is the same, by any means. It just means that the commit graph shows that there is nothing new to bring in. That, in turn, implies you (or someone else) already did the merge. The tree attached to the final merge (the result of the merge) is not what you want, but the only thing git can see is that the merge is done. See Why after merge does GIT say “Already upto date”, but differences between branches still exist? for an example involving git revert
, for instance.