the fast forward feature seems important to avoid unnecessary merge messages from checkin. we need to be careful at merge time with a branch to say: git merge --no-ff <thebranch>
because otherwise we would lose all the changes that occurred on the branch. but remembering every trivial merge, even those without contents, is not good, so --no-ff needs to be dumped for most pulls.