git repos的结构,其中在repos之间共享的代码需要位于repo的根目录中

时间:2013-03-20 06:37:47

标签: git git-submodules

我正试图想出一个相当干净的方式来代表Git中的以下内容:

  • 一个基础项目,包含许多项目中使用的公共代码。

  • 使用基础项目的多个子目录中的附加文件扩展基础项目的多个项目。

  • 扩展项目通常对基础项目进行项目特定的修改。我们希望能够将这些修改推回到上游,而不是推动扩展特定的东西。

我目前的想法是:

  • 基础项目和每个扩展项目的单独回购。

  • 对于每个扩展项目,fork基础项目并为特定于扩展的内容创建子模块。子模块的Symlink子目录到超级项目目录结构中的预期位置。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

公共项目的代码是否真的独立于项目,是的,子模块是一个不错的选择。

但是如果更改项目也涉及几乎总是更改公共代码,并且如果扩展项目不代表那么多文件......那么每个扩展项目有一个分支的一个repo和一个专用于公共代码的分支可能是够了。
然后,这可能需要对公共代码分支中想要的项目特定提交进行一些挑选。