我有3个存储库:

  • 应用程序
  • Lib1
  • Lib2

  • 应用程序需要同时运行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/

    10-10 14:06