Для своих проектов — у меня отдельная ветка develop (там может быть нерабочий код), как только код стабилизировался — перетекает в мастер все и иногда помечается тегом (версия). Для багов и фич, если они есть где-то в системе багтрекинга, то тут 2 варианта можно применить. Если проект огромный, то имеет смысл заводить ветку на фичу или баг, если проект небольшой, то можно обойтись префиксами к коммитам, а ветки выделать под большие фичи.