Branching Models
gitflow
Take a look at this blog post.
cactus model
Take a look at this blog post.
Stable Mainline
Take a look at this blog post. This post about branch by abstraction is also a good read on linear histories and why having long-term feature branches especially when refactoring is a bad idea.
TODO: Although the above-mentioned blog posts are good consistent documents, it would be nice to have a condensed TL;DR version here for the busy readers.