情况:
我们有一个项目,它包含许多存储在app / modules文件夹中的子模块。所有子模块都是独立的,每组用户(开发人员)只能使用子模块的特定子集。这可以通过仅对特定子模块执行git submodule update --remote --merge app/modules/SomeModule
来轻松实现(即不要初始化/更新所有可用的子模块)。
问题1:
如果某个用户不需要访问某些子模块,则空子模块文件夹仍然存在。是否可以确保默认情况下不存在空子模块文件夹,并且仅在请求时创建(例如,在init / update之后)?
问题2:
关于子模块的更一般的问题 - 是否真的需要将子模块更改提交到主项目中?我知道它用于将子模块的提交哈希存储到主项目中,因为它不存储在.gitmodules文件中。但我们的子模块是跟踪分支git submodule add -b BranchName ...
,开发人员总是使用git submodule update --remote --merge
提取最新的子模块版本,是否将其提交给所需的主要项目?主要意义是子模块和主项目是分开的,所以主项目似乎没有理由知道子模块版本/提交/历史。
答案 0 :(得分:0)
跟踪子模块的SHA实际上是子模块的重点。因此,您可以查看父项的特定版本/分支,并获取相应的子项版本
如果你不需要这个,那么首先不使用子模块会容易得多
只需在.gitignore中添加您当前拥有的所有目录作为子模块,每个开发人员都可以使用正常git clone
克隆所需的存储库。
这可以解决你的问题。