我不确定如何用Git做到这一点:
(Module
是文件或文件夹)
MyCoreRepo:
Module1
Module2
Module3
Module4
MyCompositeRepo1:
Module2
Module3
MyCompositeRepo2
Module1
Module4
目标是能够选择一些模块(一种组合)。 MyCompositeRepo1正在挑选Module2
和Module3
,然后会添加一些特定代码并保持MyCompositeRepo1
级别(不与MyCoreRepo
共享)。
如果我在Module2
中Module3
或MyCoreRepo
添加新功能,MyCompositeRepo1
应该能够提取它(更新其Module2
和{{1}在不破坏同时添加的特定代码的情况下。
答案 0 :(得分:1)
如果每个模块都是实际的submodule repos,每个模块都在其父目录中分组,那么很容易混合和匹配它们。
但是考虑到你的“模块”甚至可以是简单的文件,这使得子模块不太适合。
如果你只能处理文件夹,那么子模块repos是有意义的,MyCompositeRepo1
将能够用以下内容更新其子模块(track the latest from a branch):
git submodule update --remote
不破坏同时添加的特定代码。
只要在自己的特定分支中添加该代码,就可以在刚刚获取的分支之上重新设置分支(或者您可以将刚刚获取的分支合并到该分支)。