假设我有两个 git 存储库。 RepoA 是一个通用的 repo,应该在其他项目之间共享。 ReopB 是一些需要访问 RepoA 中某些内容的项目。
repo 协议(protocol)
https://.../RepoA
/Something
/Source
/Project1
/Project2
...
/ProjectN
repo
https://.../RepoB
/SomethingElse
/Source
/MainProject
/RepoA
/Project1 #Submodule of RepoA at /Source/Project1
使用上图,您可以看到我正在尝试做的是配置一个子模块,它不是 RepoA 的根,而是 repo 中的特定路径。在这种情况下,我想将 RepoB/Source/RepoA/Project1 映射到 RepoA/Source/Project1。
我做了一些研究,似乎这并不简单,或者可能无法做到这一点。希望我是错的!
我们正在从 SVN 迁移到 GIT,在 SVN 中,我们使用 Externals 轻松实现了这一点。
注意
我也对重组 RepoA 持开放态度。但我想保留主要结构。例如,如果我能以某种方式在 RepoA/Source/... 中分支每个项目,但我不希望它变得复杂。
最佳答案
您是否考虑过拆分 RepoA 中的“项目”,使它们成为单独的 repo 协议(protocol)?您可以使用 git subtree split 来做到这一点.然后将 Project1 存储库作为子模块包含在 RepoA 和 RepoB 中。
关于来自子目录的 Git 子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24832369/