我有3个存储库:
应用程序需要同时运行Lib1和Lib2。 Lib1需要Lib2进行编译和引用。
我最近将Lib 2作为子模块添加到Lib 1中,之后,我将Lib1 和 Lib2作为子模块添加到了应用程序存储库中。像这样:
-Application
|-submodule Lib1
| |-submodule Lib2
|-submodule Lib2
现在我的问题/疑问:
Lib2在应用程序存储库中重复。如果我想在其他地方(其他项目/存储库)使用两个库,是否将子模块Lib2添加到Lib1和Application都是正确的选择?还是只将库包含在编译器中作为附加的include文件夹,然后让开发人员自己获取或 checkout 其存储库会更好吗?
最佳答案
对于多个依赖项,最佳实践是将它们全部列出在一个级别上。
因此,Application将Lib1和Lib2作为依赖项。
Lib1依赖于Lib2的事实可用于检查App是否引用与Lib1相同的Lib2。
但想法仍然是:
git submodule update --init
中那样 checkout )仅App内的子模块(因此此处没有--recursive
)Lib1
使用App/lib2
而不是./Lib2
构建。 关于c++ - git存储库中的多个引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21689294/