我喜欢设置Subversion的方式之一是,我可以拥有一个包含多个项目的主存储库。当我想从事一个项目时,我可以只签出该项目。像这样
\main
\ProductA
\ProductB
\Shared
然后
svn checkout http://.../main/ProductA
作为git的新用户,我希望在致力于特定工作流程之前探索一下该领域的一些最佳实践。从到目前为止的内容来看,git将所有内容存储在项目树根目录下的单个.git文件夹中。所以我可以做两件事之一。
- 为每个产品设置一个单独的项目。
- 设置单个大型项目并将产品存储在子文件夹中。
产品之间存在依赖关系,因此单个大型项目似乎很合适。我们将使用所有开发人员都可以共享其代码的服务器。我已经通过SSH和HTTP进行了此工作,我喜欢这一部分。但是,SVN中的存储库已经很多GB了,因此在每台计算机上拖移整个存储库似乎是个坏主意-尤其是因为我们要为过多的网络带宽付费。
我以为Linux内核项目存储库同样大,因此必须有一种使用Git处理此问题的正确方法,但我还没有弄清楚。
是否有用于处理大型多项目存储库的准则或最佳实践?