A successful Git branching model by Vincent Driessen has good suggestions. A picture is below. If this branching model appeals to you consider the flow extension to git. Others have commented about flow
Driessen's model includes
A master branch, used only for release. Typical name master
.
A "develop" branch off of that branch. That's the one used for most main-line work. Commonly named develop
.
Multiple feature branches off of the develop branch. Name based on the name of the feature. These will be merged back into develop, not into the master or release branches.
Release branch to hold candidate releases, with only bug fixes and no new features. Typical name rc1.1
.
Hotfixes are short-lived branches for changes that come from master and will go into master without development branch being involved.