Answers:
将仓库克隆到开发人员的本地计算机已经是一种分叉。如果每个开发人员在GitHub上分叉该存储库,则仅用于发布其当前的工作状态。
当存在中央主存储库且许多贡献者不直接访问该存储库时,这可能是合适的。这对于开源项目非常有用,每个人都可以贡献并发出拉取请求,然后由一组核心维护者对其进行审核和合并。使用多个存储库可强制执行基于拉取请求的工作流。
在一个受信任的小型团队中,这不是必需的。为了防止不同的人互相干扰,可以遵循诸如Git Flow之类的策略:每个小的功能都在单独的功能分支上实现。功能完成后,它将合并到master分支中。大多数团队会将其与拉动请求或按惯例进行代码审查相结合,但是如果有适当的话,他们会被信任以跳过该请求。尽管使用单独的存储库会导致开发人员将其当前状态发布到其分叉但团队可见的存储库中,但在单个通用存储库中,他们会将更改推送到一个单独的功能分支中。在大多数工作流程中,强烈建议不要在主/主干上进行所有开发。
最终的区别仅在于访问管理,而与实现的工作流无关。您可以使用任一设置来执行基于拉式请求的工作流。从原始的Git角度来看,分支和分支之间没有太大区别-两种方法本质上都共享项目的历史,并且允许添加提交而不会影响其他分支/分支。考虑到这一点,最好在一个受信任的封闭组中共享一个仓库。