我需要为每个项目创建一个代码库,还是只需创建一个包含此解决方案中所有项目的代码库?
如果您正在通过库或服务共享大量共享代码,则取决于情况。如果您需要在不同版本中使用需要的库,则更容易将它们分开并使用git子模块(如果喜欢,可以通过git slave)。如果您需要让所有项目都使用最新的库(因为它们访问共享数据存储),则可能只需要一个repo。
单独的repos可能更容易进行访问控制,但是gitolite非常好,因为它可以按分支和许多其他条件进行限制。
您以后可以通过“git rebase --root --onto branch1”将存储库连接起来并移植历史记录。或者,您可以使用git filter-branch将一个库拆分成多个。
所以我不会太过担心。您正在使用git有原因。您以后可以改变主意,但仍然保留历史记录。
根据您的需求,特别是项目之间的关系,您可以选择任何一种方式 - 如果项目在同一个存储库中,则更容易在它们之间添加引用。如果它们在不同的存储库中,则更容易具有不同的访问控制设置。
但是,如果项目在同一个解决方案中,则肯定需要一个单独的存储库。
我曾经使用Git处理一个非常大的项目集(200+),其中应用程序是一组核心项目和许多插件项目。我们使用了Android的Repo脚本(http://source.android.com/source/git-repo.html)来帮助管理它们。
对于我们来说,这是必要的,因为我们有十几个不同产品的插件配置。这是一个相当不错的工具。主要缺点是repo缺乏文档,并且名称选择很糟糕(不易搜索)。