Why I still rebase
Merge commits tell you what happened; a rebased history tells you what changed. After years of switching between the two, I keep coming back to rebase for feature branches. Here is the workflow I use, the one rule that keeps it safe, and the cases where I merge instead.