将git子模块与相互依赖的存储库一起使用的聪明方法

时间:2019-03-24 09:59:59

标签: git git-submodules

我们有一个更大的项目,它以树结构存在于多个相互依赖的git存储库中,没有递归。在下面的内容中,即使树的深度可能相对较大,我也会尝试尽可能地缩小示例,以突出我要解决的问题。假设存储库和子模块依赖项的系统如下(符号“->”表示用作子模块):

A
B -> A
C -> A, B

如果我将git clone --recursive用于C,则会发生以下目录结构:

C/
C/A
C/B/A

此重复也将在.git目录内进行:您将找到.git/modules/A.git/modules/B.git/modules/B/modules/A。尽管我理解了这种情况的原因,但在我们的特定情况下,如果结构更像以下结构(符号:“->”符号链接)将很有用:

C/A
C/B
C/B/A -> C/A

因此,如果我要在A中更新B,它也将在C中进行更新,那么我只需要对这些存储库提交更改,它们将保留同步中。这可能在git中吗?有解决此问题的实用方法吗?

1 个答案:

答案 0 :(得分:0)

您也可以使用另一种方式链接:

# at the root of C
ln -s B/A A