在GIT中,您似乎无法在其他子模块的目录结构中添加子模块。项目内的子模块路径自动在gitignore中。有办法解决这个问题吗?
例如,假设您正在使用以下目录结构配置项目:
Project
-----|___SubModule1
------------------|___SubModule2
但您不希望将SubModule2与SubModule1的存储库相关联(即,您可以通过将SubModule2作为子模块添加到SubModule1然后将SubModule1作为子模块添加到Project中来分两步完成此操作)。
相反,您希望在项目中管理此关联,该关联只保存配置(即,如果SubModule2是SubModule1中间件的插件)。怎么办呢?
谢谢
答案 0 :(得分:0)
如果我正确理解您的问题,您希望子模块包含特定于父存储库project
的内容(即插件)。如果我错过了什么,请纠正我。我将在命令行中描述必要的步骤。
这可以通过在子模块存储库中创建分支轻松解决。从您的父存储库,切换到您的子模块:
cd SubModule1
git checkout -b project/plugins
现在将必要的插件添加到创建的分支,提交并推送包含所需插件的提交。
//copy plugins or whatever
git add plugins/requiredPlugin
git commit -m "Add project-specific plugins"
git push
然后,您将使用新提交在远程创建新分支,因为它是HEAD
,包含您需要的插件,而SubModule1
存储库的其余部分未受影响。
回到父存储库,您将看到子模块已更改。当然,这是因为它现在指向与之前不同的提交:包含插件的提交。您现在可以添加和提交更改,并让您的父存储库指向包含特定插件的子模块分支中的提交。
cd ..
git status
//see that SubModule1/ has changed
git add SubModule1
git commit -m "Update submodule to plugin branch"