多年来一直在考虑这个问题,对任何建议都很感兴趣。
一个简单的Unity游戏项目看起来像这样,在Root
有一个Git回购。
Root
├─Assets
│ └─Game files
└─Project files
随着时间的推移我开发了大量插件,结果将如下所示。
Root
├─Assets
│ ├─Plugins
│ │ ├─Plugin_A
│ │ ├─Plugin_B
│ │ ├─Plugin_C
│ │ └─Plugin_D
│ └─Game files
├─iOS Plugin projects
│ └─Plugin_C project
├─Anroid Plugin projects
│ └─Plugin_D project
└─Project files
现在我真的想让插件有自己的版本(所以我可以继续“从”任何游戏项目开发它们),同时保留每个插件的相对项目位置。
重点是:在同一(!)子存储库中包含多个(!)子文件夹。就像在单个(!)子存储库中使用Assets/Plugins/Plugin_D
和Anroid Plugin projects/Plugin_D project
一样。并使用Plugin_C
等完成剩下的工作。
在root上拥有每个插件的存储库(保留其子文件夹位置)会很棒。
Root
└─Assets
└─Plugins
└─Plugin_A
但重点是在同一个(!)插件库中有重叠的文件夹。就像有一个存储库,包含本机插件(Assets/Plugins/Plugin_C
)和(!)包含各自重叠的插件项目(iOS Plugin projects/Plugin_C project
)。对于iOS来说就像这样:
Root
├─Assets
│ └─Plugins
│ └─Plugin_C
└─iOS Plugin projects
└─Plugin_C project
对于Android:
Root
├─Assets
│ └─Plugins
│ └─Plugin_D
└─Anroid Plugin projects
└─Plugin_D project
我尝试将它们全部设置为项目根目录的子模块(忽略除插件文件夹之外的所有内容),但我无法将多个子模块创建到单个Root
文件夹中。
作为奖励,将所有插件放在一个存储库中会很棒,因此我可以轻松地引导任何项目,然后有选择地添加/删除模块。
到目前为止,我将每个文件夹设置为本地子模块,但这样一个项目设置过程实际上非常繁琐/容易出错,我也无法使用各自的托管对应版本对本机插件项目进行版本化。
对任何建议都很感兴趣。
答案 0 :(得分:1)
是的,您可以在单独的存储库中管理插件A到D.但如果这四个插件相关,你最好在四个分支的回购中管理它们。
然后,您可以使用 git subtree
为要为项目申请的子文件夹添加插件。
例如,如果要在Assets/Plugins
中添加Plugin_C,可以使用:
git subtree add --prefix=Assets/Plugins/Plugin_C <URL for pluginC repo> master
如果您想将plugin_D添加到Android/
,可以使用:
git subtree add --prefix=Android/Plugin_D <URL for pluginD repo> master