Similar questions对此有already been asked,虽然他们不完全是我想要做的。使用Git插件开发
起初我以为我需要一个git子模块,然后建立一个超级项目,然后一个子树合并,但我不确定这些是否真的合适。
我有一个project(伊娃),我正在写一些extensions for it是可选。所以如果你想从Github上下载一个副本Eva,它不会包含可选的插件,但你可以单独获取它们并使用它们。
可选的扩展名与Eva驻留在相同的目录结构中。简单的那么远,
Eva
|
--- system/
--- events/
|
--- core_events
--- tests/
|
--- core_tests
Extension A
|
--- events/
|
--- [extension A]
--- tests/
|
--- [extension A tests]
我想测试增加了那些扩展今晚,现在我有他们在我的本地伊娃的git回购之外的单独的目录。为了运行这些测试,我真的需要这些扩展与Eva处于同一个目录中,这些事件依赖于核心系统来运行。
Eva
|
--- system/
--- events/
|
--- core_events
--- [extension A]
--- [extension B]
--- tests/
|
--- core_tests
--- [extension A tests]
--- [extension B tests]
我可以在伊娃项目文件复制到扩展回购目录,但如果我修改伊娃的源代码,然后我要保持整个复制这些变化。
我应该继续这种笨拙的设置,还是有更优雅的方式git可以容纳这个?
也许我的要求是与其他问题相反的。我的扩展是Eva的一个子项目,我需要偶尔从Eva回购中获取更新。
如果我将扩展repo添加为子模块,当有人克隆Eva时,他们也会获得所有可选插件?我不想那样。
不确定子树合并是否适合,我将永远不必将扩展项目拉入核心Eva项目。
也许这个简单的答案是让每组扩展都在自己的分支上?在每个分支`.gitignore`文件中都有相应的条目,它们可以共存在同一个目录中? – 2011-02-10 00:48:03