父文件夹中的Git子模块

时间:2016-10-18 13:54:46

标签: 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.这是怎么可能的,因为子模块不是远程的,而是我机器上的文件夹?我已经用Google搜索了这个答案,但还没有找到我想要的东西。 2.如何将其作为子模块添加,因为它位于我的应用程序文件的目录中?

在此先感谢,我确信有一个简单的解决方案!

1 个答案:

答案 0 :(得分:0)

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)