Is it possible to merge only fast-forwardable branches **and** create a merge commit? I want to rebase the branches before merging but still have the branch separately in history. So, I'm wondering if there is some way to make sure that git won't merge if the branch hasn't been rebased (--ff-only) but at the same time create a merge commit (--no-ff). Giving both --ff-only and --no-ff doesn't work.

Motivation: I want to have linear history but so that each feature branch is clearly separate. They just follow one after another.