Company policy is to use --no-ff for merge commits. I personally like to adjust merge log messages so I use --no-commit. Plus I like to actually co
To make --no-ff --no-commit the default merge behavior, set the options to no using:
git config --global merge.ff no
git config --global merge.commit no
However, the problem with this is that git pull = git fetch + git merge. So whenever you pull from the remote server, you'd be creating an ugly merge commit when a simple fast-forward would be warranted. To solve this, set pull.ff to yes:
git config --global pull.ff yes