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