我们有几个项目使用相同的Plugins + libs(一些包含插件的常用代码,也包括一些通用代码,例如数学库)
我们需要将它们与主存储库分开,因为我们在几个项目之间共享它们。
目前,插件和库是连接到主项目的两个独立子模块。问题是管理它们并不方便,因为最常提交插件而你也会提交“libs”来连接新的.dll。一种选择是将“libs”移动到插件中,但如果可能的话我们希望避免使用此选项。
例如,如果我们可以将插件移动到更深层,我们可以做
Assets/common/Plugins
/libs
其中“common”是一个新的子模块,其中包含插件和库(仅作为文件,而不是子子模块)。它将解决我们所有的问题。
如果你实际上无法移动插件(比如在某处设置新路径)那么还有其他方法可以解决这个问题吗?
P.S。子树可能也不是一个选项,因为我理解它 - 它要求团队中的每个人都避免同时从不同的存储库中提交(如root和插件将在我们的示例中),使用“git subree push”代替也没有很好的用户界面支持(这是必需的,因为大多数团队都不是程序员,但仍然一直使用git),所以我们最好不用它来避免将来的复杂化。
答案 0 :(得分:1)
Git支持符号链接,它们可以在Unity的其他地方使用,但会在警告中通知符号链接可能会破坏内容。
符号链接至少在使用Cygwin的OS X和Windows 10上运行良好(使用CYGWIN =符号链接:本机设置)。从未尝试使用更多本机Windows客户端,但Windows确实支持目录连接所需的内容 - 不确定git是否会自动执行此操作。
因此,假设您可以使用符号链接,那么您将拥有:
Assets
|-- common <--- git submodule
| |-- Plugins <----------+
| +-- libs |
|-- Plugins |
| |-- some-other-plugin |
| +-- common ------------+ <-- symlink to
| Assets/common/Plugins