C#项目中具有共享依赖项的子模块中的git子模块

时间:2019-10-21 12:57:27

标签: git git-submodules

我有以下这种情况:

  • 一个核心库,我们称它为A。
  • 一个功能库,我们称其为B。B取决于A。
  • 一种称为C的工具,取决于A和B。

A在许多项目中共享。 B在3-4之间共享。

因此,布局如下:

  • 项目C的子模块内部有A。
  • 项目C的子模块内部有B,而B的子模块内部有A。

这在git中效果很好,尽管它在项目方面很快失败了。

第一个含义是C和B可以使用A的不同版本,但这只是我们不搞砸了。

主要问题是,在IDE中不可能有两次包含“ A”的项目。

是否可以将B作为子模块,但是B不是自己的子模块?所以我们不会有A的两个副本?

此外,我敢肯定还有其他人也有同样的问题。是否有一种通用/公认的方式来解决该问题?

1 个答案:

答案 0 :(得分:0)

处理该问题的常用方法是不使用git子模块。一旦事情变得太复杂,就会出错。

请改用软件包管理器,例如NuGetPaket。这些也将有助于确保在所有项目中仅使用单个修订版,有助于resolve the revision that can be used的所有依赖项,并提供更新软件包的工具。

使用NuGet,您将不得不从AB中创建软件包,Paket允许git dependecies,因此您只需要更新{{1}中的构建/项目/解决方案}和B