Hi, little bit late to the party...
Option ff-only works for me perfectly as it does not make
anything (possibly wrong) automagically.
Then I always have to manually check whether possible rebase
operation would be sensible.
.git/config:
---
[pull]
ff = only
[merge]
ff = only
---
---
$ git commit -m 'local commit before merging latest remote HEAD'
$ git pull
From github.com:kamailio/kamailio
* branch
master -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting.
$ git merge origin/master
fatal: Not possible to fast-forward, aborting.
$ git log --graph --all --decorate #observe changes
$ git rebase origin/master #decided to rebase from remote master
First, rewinding head to replay your work on top of it...
Applying: local commit before merging latest remote HEAD
$ git push
---
--
Mikko