Git多个子模块引用

时间:2015-11-24 09:45:53

标签: git dependencies git-submodules

我对git很陌生,我不知道如何以最好的方式解决这个具体问题。希望你们能为我提供一些好的解决方案。我在网上搜索但找不到像这样解决我问题的例子。也许这是一个设计缺陷?我找不到一个好的解决方案。

我有以下项目:

  • 通用
  • SqlApi:取决于具体的通用版本
  • CoreLogic:取决于特定的Common和SqlApi版本
  • 项目A:取决于具体的CoreLogic,SqlApi和Common版本
  • 项目B:取决于具体的CoreLogic和Common版本

使用子模块,项目A的工作目录如下所示:

{{1}}

是否有更好的方法可以摆脱Common(2-4)和SqlApi(2)并让它们在一个项目中链接到相同的Common / SqlApi(1)版本?

也许我只是“常规盲目”,但我需要一些帮助来解决这个问题。

1 个答案:

答案 0 :(得分:0)

  

有没有更好的方法来摆脱Common(2-4)和SqlApi(2)

简单:在ProjectA中,您只能制作git submodule update --init,而不是git submodule update --init --recursive (or git clone --recursive)

这将给出:

Project A
    - Common(1)
    - SqlApi(1)
    - CoreLogic

这意味着:

  • SqlAPICoreLogic可以根据变量构建(Common路径的一个变量,SqlAPI路径的一个变量,
  • Project A有一个构建脚本,可以充分设置SqlAPICommon路径。

这并不容易表明版本可能在Project A的需求与其中一个子模块所需的版本之间存在差异/重叠。