子目录中的Git子模块?

Git submodule from subdirectory?

假设我有两个吉特回购。回购协议是一种常见的回购协议,应该在其他项目之间共享。REOPB是一些需要访问repoa中某些内容的项目。

雷波阿

1
2
3
4
5
6
7
https://.../RepoA
    /Something
    /Source
        /Project1
        /Project2
        ...
        /ProjectN

雷波

1
2
3
4
5
6
https://.../RepoB
    /SomethingElse
    /Source
        /MainProject
        /RepoA
            /Project1  #Submodule of RepoA at /Source/Project1

使用上面的示例,您可以看到我正在尝试配置的子模块不是repo a的根,而是repo中的特定路径。在这种情况下,我想将repob/source/repoa/project1映射到repoa/source/project1。

我做过一些研究,似乎不太直接,或者不可能做到这一点。希望我错了!

我们正在从SVN转移到Git,在SVN中,我们使用Externals轻松完成这一任务。

注释

我也愿意重组回购协议。但我想保持主结构的位置。例如,如果我可以在repoa/source/…中以某种方式对每个项目进行分支,但我不希望这变得复杂。


您是否考虑将回购协议中的"项目"拆分为单独的回购协议?您可以通过使用git子树拆分来实现这一点。然后,您将project1 repo作为repoa和repob中的子模块包含在内。