假设我有两个git repos。 RepoA是一个常见的回购协议(protocol),应在其他项目之间共享。 ReopB是一些项目,需要访问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/中分支每个项目,但是我不希望这变得复杂。

最佳答案

您是否考虑过将RepoA中的“项目”拆分成单独的存储库?您可以使用git subtree split做到这一点。然后,将Project1存储库作为子模块包含在RepoA和RepoB中。

08-26 10:54