2012-03-13 84 views
2

我的问题不是关于可能性。我知道这是可能的,并在同一个网站上阅读,它被称为子模块。在其他回购中使用多个git回购是一个好主意吗?

在一个项目中,我意识到我们已经开发了几个可重用的组件,其他人可以使用,因此我们在gihub上创建了多个项目并将适当的文件放入其中。然而在主项目中,我们有一个单一的git存储库。

在这段时间里,我们意识到github上的一些项目被别人分解了,并且也得到了改进。如果我们在我们的主项目中创建了多个回购站,我们可以轻松地引入更改,而不是手动复制文件。

由于我没有经验使用git管理大型和多个项目,我想知道标准做法是否值得鼓励在单个大型存储库中拥有多个git存储库。

是否有任何折衷?我们需要考虑的重点有哪些?

回答

1

正如您注意到的那样,这就是submodules的概念进入的地方。

为了举例说明这种情况,我将使用Kohana Framework,这是一个用于web应用程序的PHP全栈框架。

Kohana的结构是这样的:

  • 系统(Kohana的核心)
  • 模块(Kohana的官方模块)

你可以看到,在系统目录实际上对应于一个单一的存储库, core,模块目录有多个模块,每个模块都有自己的存储库,以表示特定的可重用特性,例如,authdatabaseorm

Kohana是一个很大的项目,而且这种方法对于保持他们的哲学非常好。