Team of one here tends to work on master only for very small stuff.
There's a branch for the next release which will get merged once everything's done. Occasionally there are smaller branches that fork off of the release branch and get merged back.
Meanwhile master is, most of the time, an old copy of the new release branch so merging goes without issue. Unless there's a problem in prod, then it gets fixed in master and backported to the feature branch.
I should use feature toggles more (usually #ifdef
, sometimes if (config_Flag)
), occasionally a big feature creeps in and i know management will change it at least 3 times and 2-3 new releases will come out in between...