GIT子模块 - 空文件夹和提交

时间:2018-03-16 09:51:39

标签: git git-submodules

情况:

我们有一个项目,它包含许多存储在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提取最新的子模块版本,是否将其提交给所需的主要项目?主要意义是子模块和主项目是分开的,所以主项目似乎没有理由知道子模块版本/提交/历史。

1 个答案:

答案 0 :(得分:0)

跟踪子模块的SHA实际上是子模块的重点。因此,您可以查看父项的特定版本/分支,并获取相应的子项版本 如果你不需要这个,那么首先不使用子模块会容易得多 只需在.gitignore中添加您当前拥有的所有目录作为子模块,每个开发人员都可以使用正常git clone克隆所需的存储库。
这可以解决你的问题。