Uso o Git-Flow no meu trabalho e me sinto meio confuso as vezes. Devido o time ser pequeno não tenho muito problema com relação aos merges. Mas seguimos o fluxo com a develop, master e as releases. Fazemos as features e subimos em develop. Develop também é um ambiente separado para teste. Depois de testada, a funcionalidade é passada para master e atualizada em outro ambiente, o de homologação. Nesse ambiente, ocorrida a homologação, é gerada a release e atualizado no ambiente de produção. Eu particularmente acho o fluxo funcional até certo ponto. Acho que demora um pouco demais para as features chegarem em produção.