How Git no-ff Merges Work

Clear explanation of Git no ff merge behavior and why a merge commit appears even when a fast forward is possible. Practical branching tips.