子目录中的Git子模块?

时间:2014-07-18 19:26:14

标签: git git-submodules

假设我有两个git回购。 RepoA是一个应该在其他项目中共享的通用回购。 ReopB是一些需要访问RepoA中的东西的项目。

RepoA

https://.../RepoA
    /Something
    /Source
        /Project1
        /Project2
        ...
        /ProjectN

RepoB

https://.../RepoB
    /SomethingElse
    /Source
        /MainProject
        /RepoA
            /Project1  #Submodule of RepoA at /Source/Project1

使用上面的插图,您可以看到我要做的是配置一个不是RepoA根目录的子模块,而是配置回购中的特定路径。在这种情况下,我想将RepoB / Source / RepoA / Project1映射到RepoA / Source / Project1。

我做了一些研究,似乎不是直截了当,也可能不是这样做的。我希望我错了!

我们正在从SVN迁移到GIT,在SVN中,我们使用Externals轻松完成此任务。

注意

我也愿意重组RepoA。但我想保持主体结构。例如,如果我能以某种方式在RepoA / Source /中分支每个项目......但我不希望这变得复杂。

1 个答案:

答案 0 :(得分:3)

您是否考虑过将RepoA中的“项目”拆分为单独的回购?您可以使用git subtree split执行此操作。然后,在RepoA和RepoB中包含Project1 repo作为子模块。