来自子目录的 Git 子模块?

标签 git git-submodules

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

相关文章:

git pre-commit hook 同时格式化和重新添加文件

git - Magit 还原单个文件

GitHub 存储库错误 : Cannot retrieve the latest commit at this time

android - 尽管删除 git 子模块仍出现 "detached HEAD"错误

Git:忽略子模块中未跟踪的文件

git - 当一个人添加一个未跟踪的文件时,它不会立即进入暂存状态吗?

ruby-on-rails - 在 Rails 应用程序中使用多个 git 存储库 stash 数据库的密码

git - 添加 Git 子模块时如何指定分支/标签?

git - 将 git repo 的一部分作为子模块添加到另一部分

java - 使用 JGit 将子模块添加到非空路径