父文件夹中的 Git 子模块

标签 git nested dependencies git-submodules subproject

我有一个项目,它有一个不可修改的文件夹结构,如下所示

<project folder>
  |_SDK layer 1
  |_SDK layer 2
  |_SDK layer 3
  |_Application Projects Folder
    |_Application Project Source Files
    |_Application Project Autogenerated Files (not to be committed)

当我构建每个项目时,我想让 SDK 文件夹(统称为一个单元)成为应用程序项目源文件文件夹的依赖项。这样,我对 SDK 进行了修改,我可以将其与我的应用程序源中的功能/更改相关联。

我描述的是 Git 子模块吗?或者还有其他方法可以做到这一点吗?

如果我应该使用 Git 子模块,我猜 SDK 将是我的应用程序源项目的子模块。在这种情况下: 1. 这怎么可能,因为子模块不是远程的,而是我机器上的一个文件夹?我用谷歌搜索了这个答案,但没有找到我要找的东西。 2. 由于它位于我的应用程序文件的父级 目录中,如何将它添加为子模块?

提前致谢,我相信有一个简单的解决方案!

最佳答案

Git 子模块是关于在当前存储库中嵌套其他 Git 存储库。您在谈论本地文件夹:除非这些文件夹本身不是存储库,否则您首先将无法使用子模块。

关于您的第二个问题,子模块仅适用于存储库中的路径。所以如果你的 Application Projects Folder是您当前的存储库根目录,无法重新创建此结构。

您需要的是一个位于 <project root> 级别的 Git 存储库(我看到您提到不可修改,只是为了演示)您可以在其中包含 SDK 的子模块。

-SDK layer 1 (Git-Repo SDK1)
-SDK layer 2 (Git-Repo SDK2)
-SDK layer 3 (Git-Repo SDK3) 
-<project folder> (Git-Repo Application)
   |_SDK layer 1 (Git submodule referencing SDK1)
   |_SDK layer 2 (Git submodule referencing SDK2)
   |_SDK layer 3 (Git submodule referencing SDK3)
   |_Application Projects Folder
     |_Application Project Source Files
     |_Application Project Autogenerated Files (not to be committed)

关于父文件夹中的 Git 子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110216/

相关文章:

git - tortoisegit = 致命的 : the remote end hung up unexpectedly but not with git bash

由于枚举类嵌套,C++ 循环依赖

json - 如何从Couchbase查询深度嵌套的JSON值?

java - Maven 程序集 : how package only imported/used dependencies for each execution

angular - npm 需要一个 peer 但没有安装

c - C 中确定符号来源的工具

git - PhpStorm 是否有内置的 git 修订图?

git - 你如何让 git 集成与 m2eclipse 一起工作?

git - 检查旧提交并维护 master 分支上的头部?

Python3 : How to convert plain html into nested dictionary based on level of `h` tags?