1

我试图想出一种相当干净的方式来在 Git 中表示以下内容:

  • 包含跨多个项目使用的通用代码的基础项目。

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

  • 扩展项目通常对基础项目进行特定于项目的修改。我们希望能够将这些修改推回上游,同时又不将扩展特定的东西向上推。

我目前的想法是这样的:

  • 基础项目和每个扩展项目的单独存储库。

  • 对于每个扩展项目,派生基础项目并为扩展特定的东西创建一个子模块。将子模块的子目录符号链接到超级项目目录结构中的预期位置。

有没有更好的办法?

4

1 回答 1

1

是不是普通项目的代码真的是独立于项目的,那么是的,子模块是个不错的选择。

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

于 2013-03-20T07:10:58.263 回答