A clonagem do repositório na máquina local do desenvolvedor já é uma espécie de bifurcação. Se cada desenvolvedor bifurcar o repositório no GitHub, isso servirá apenas para publicar seu estado atual de trabalho.
Isso pode ser apropriado quando houver um repositório principal central e muitos colaboradores não confiáveis com acesso direto a esse repositório. Isso funciona muito bem para projetos de código aberto, onde todos podem contribuir e emitir uma solicitação pull que é então revisada e mesclada por um grupo de mantenedores principais. O uso de vários repositórios impõe um fluxo de trabalho baseado em solicitação de recebimento.
Em uma equipe pequena e confiável, isso não é necessário. Para impedir que pessoas diferentes se interajam, é possível seguir uma estratégia como o Git Flow: Cada recurso pequeno é implementado em um ramo de recurso separado. Quando o recurso é concluído, ele é mesclado na ramificação principal. A maioria das equipes associa isso a uma solicitação pull ou revisão de código por convenção, mas é confiável o suficiente para ignorar isso, se apropriado. Enquanto repositórios separados levariam um desenvolvedor a publicar seu estado atual em repositórios bifurcados, mas visíveis pela equipe, em um único repositório comum, eles enviariam suas alterações para um ramo de recurso separado. Fazer todo o desenvolvimento no mestre / tronco é altamente desencorajado na maioria dos fluxos de trabalho.
A diferença acaba sendo exclusivamente sobre gerenciamento de acesso e não muito sobre o fluxo de trabalho implementado. Você pode executar fluxos de trabalho baseados em solicitação de recebimento com qualquer uma das configurações. De uma perspectiva básica do Git, não há muita diferença entre uma bifurcação e uma ramificação - a abordagem compartilha essencialmente o histórico do projeto e permite que as confirmações sejam adicionadas sem afetar outras ramificações / bifurcações. Considerando isso, seria muito melhor compartilhar um único repositório em um grupo fechado e confiável.