Excluir após mesclar é a maneira usual. É por isso que git branch -d yourbranchname
verifica se o branch está totalmente mesclado antes de ser excluído.
Existem alguns motivos que posso pensar para manter um branch por perto: você pode querer mantê-lo no caso de haver bugs voltando assim que chegar à produção, ou você pode querer um registro histórico.
Em ambos os casos, você tem a opção de marcar o chefe do ramo antes de excluí-lo. Uma tag é como um branch no sentido de que é um ponteiro para um commit, exceto por algumas pequenas diferenças: 1) porcelain geralmente não exibe tags em comandos exploratórios como git show-branch ou tab-auto complete no checkout, 2) fazer check-out coloca você em um (não ref) HEAD 3) destacado, você pode deixar uma " mensagem de tagging ", que faz com que a tag seja salva como um objeto no armazenamento de objeto como um commit.
Dessa forma, você preserva o histórico e, se precisar corrigir o bug, recomendo apenas criar um novo branch do master para a correção.