假设我有两个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中。