Git 共享通用代码,包括插件[Unity]
我们有几个项目使用相同的Plugins+libs(一些封装插件的通用代码,还有一些通用代码,比如数学库) 我们需要将它们与主存储库分开,因为我们在几个项目之间共享它们 目前,插件和libs是连接到主项目的两个独立子模块。问题是这样管理它们并不方便,因为提交到插件的次数最多,例如,您也会提交到“libs”来连接新的.dll。一种选择是将“libs”移动到插件中,但如果可能的话,我们希望避免这种选择 例如,如果我们可以将插件移动到更深的一层,我们就可以做到Git 共享通用代码,包括插件[Unity],git,unity3d,plugins,shared-libraries,git-submodules,Git,Unity3d,Plugins,Shared Libraries,Git Submodules,我们有几个项目使用相同的Plugins+libs(一些封装插件的通用代码,还有一些通用代码,比如数学库) 我们需要将它们与主存储库分开,因为我们在几个项目之间共享它们 目前,插件和libs是连接到主项目的两个独立子模块。问题是这样管理它们并不方便,因为提交到插件的次数最多,例如,您也会提交到“libs”来连接新的.dll。一种选择是将“libs”移动到插件中,但如果可能的话,我们希望避免这种选择 例如,如果我们可以将插件移动到更深的一层,我们就可以做到 Assets/common/Plugins
Assets/common/Plugins
/libs
其中“common”是一个新的子模块,其中包含插件和lib(作为文件,而不是子模块)。它将解决我们所有的问题
如果你不能移动插件(比如设置它的新路径),那么有没有其他方法来解决这个问题
p.S.subtree可能也不是一个选项,因为据我所知,它要求团队中的每个人避免同时从不同的存储库提交(就像我们的示例中的根和插件),而是使用“git subtree push”,而且也没有很好的UI支持(这是必需的,因为团队中的大多数人都不像程序员,但仍然一直在使用git),因此我们最好不要使用它,以避免将来的复杂情况。git支持符号链接,它们在其他统一的地方工作,尽管您在警告中被告知符号链接可能会破坏东西 符号链接至少在使用Cygwin的OS X和Windows 10上运行良好(使用Cygwin=Symlinks:native setup)。从未尝试过使用更多的本机Windows客户端,但Windows确实支持目录连接所需的功能-不过,不确定git是否会自动执行此操作 因此,假设您可以使用符号链接,您将有:
Assets
|-- common <--- git submodule
| |-- Plugins <----------+
| +-- libs |
|-- Plugins |
| |-- some-other-plugin |
| +-- common ------------+ <-- symlink to
| Assets/common/Plugins
资产
|--共同感谢您的回复,我们将尝试此解决方案