Na minha pouca experiência, mas trabalho diariamente com GIT, você começou a fazer certo.
A Master é a branch principal onde se começa tudo. Quando se começa as tarefas, principalmente em uma equipe com mais de 1 um programador (digo equipe com arquiteto, design, analista, etc), é ideal a criação de branchs, mas ideal ainda uma branch pra cada desenvolvedor. Contudo, nem sempre é possível.
Mas voltando a sua questão, os passos que sigo na empresa são esses:
1 - cria-se a branch principal (Master).
2 - cria-se a branch para uma versão e/ou funcionalidade a ser desenvolvida a partir da Master. A partir daí trabalha-se com ela.
3 - ao finalizar as atividades (por completa), o arquiteto/gerente de configuração/desenvolvedor mais experiente da equipe que é o responsável pela administração do git (que pode ser você) recebe a confirmação da finalização das atividades previstas para aquela branch e através de ferramenta ou terminal ele realiza o merge para a Master, apenas, resolvendo assim os conflitos se existirem.
4 - Pronto, a partir do passo 3 o processo retorna ao passo dois 2. Daí o desenvolvedor, nesse momento, realiza o checkout para a nova branch e recomeça os trabalhos.
Espero ter ajudado! ;)