Você encontra uma descrição detalhada sobre o fluxo de trabalho de desenvolvimento e liberação em http://networld.to/798/development-and-release-workflow
O texto a seguir resume apenas a entrada do blog.
O modelo de filial
Divida seu repositório de código-fonte em dois grandes ramos. Esses ramos são compartilhados com todos os desenvolvedores. Todos os ramos adicionais devem ser mantidos localmente ou acordado de antemão como o ajuste no modelo.
- mestre : Este é o branch pronto para lançamento e deve ser tocado apenas por sua equipe de lançamento (ou se você estiver em uma equipe pequena apenas pela pessoa responsável que libera o software)
- desenvolver : Este ramo é usado para o desenvolvimento diário. Este branch será mesclado de volta ao branch master se estiver estável o suficiente para o próximo lançamento.
A foto foi tirada de nvie.com.
Tag
Crie para cada versão uma tag (lembre-se: nós lançamos apenas do branch master e mesclamos as mudanças do branch de desenvolvimento). A tag deve ter a seguinte aparência:
- v1.0.0 com uma descrição detalhada sobre as mudanças que fazem parte deste lançamento.
Recomendo o uso de versões semânticas, se possÃvel, conforme descrito em http://semver.org/ . Isso simplifica as dependências internas entre os componentes e evita confusão.