起初我以为我需要一个 git 子模块,然后设置一个超级项目,然后合并一个子树,但我不确定这些是否真的适合。
我有一个项目(Eva),我正在为它编写一些可选的扩展。因此,如果您要从 Github 下载 Eva 副本,它不会包含可选插件,但您可以单独获取并使用它们。
可选扩展与 Eva 位于相同的目录结构中。到目前为止很简单...
Eva
|
--- system/
--- events/
|
--- core_events
--- tests/
|
--- core_tests
Extension A
|
--- events/
|
--- [extension A]
--- tests/
|
--- [extension A tests]
今晚我想为这些扩展添加测试,目前我将它们放在本地 Eva git repo 之外的单独目录中。为了运行这些测试,我真的需要这些扩展与 Eva 位于同一目录中,事件依赖于核心系统来运行。
Eva
|
--- system/
--- events/
|
--- core_events
--- [extension A]
--- [extension B]
--- tests/
|
--- core_tests
--- [extension A tests]
--- [extension B tests]
我可以将 Eva 项目文件复制到扩展 repo 目录中,但如果我修改 Eva 的源代码,那么我必须继续复制这些更改。
我应该继续这个笨拙的设置,还是有更优雅的方式 git 可以适应这个?
也许我的要求与其他问题相反。我的扩展是 Eva 的一个子项目,我需要偶尔从 Eva repo 中获取更新。
如果我在有人克隆 Eva 时将我的扩展存储库添加为子模块,他们也会获得所有可选插件吗?我不想要那个。
也不确定子树合并是否合适,我永远不必将扩展项目拉入核心 Eva 项目。