A simple git branching model
I still don't understand why everyone has this misguided quest for a clean history. An accurate history is much more important.Rebasing destroys historical information. I can't really see any advantages of rebasing when a merge does the same thing but leaves two things rebasing does not: 1) a point to rollback to if things don't work out, and 2) an explicit entry of when your branch was brought up to date with master.