You've given quite a high-level overview. Although it shows the advantages of branching and merging, re-writing history is where Git really shines.<p>&#62; Unfortunately, I have not found a way to make --no-ff the default behaviour of git merge yet, but it really should be.<p>No, it shouldn't. It's just your personal preferences. I can give you plenty of examples where --no-ff makes little sense.