git 子模块的公共子模块

git common submodule of submodule

我有一个应用程序 main,它由多个子模块 AButility_functions 组成: 这两个子模块 AB 本身都包含子模块 utility_functions

main
|
|---- A
|     |
|     |---- utility_functions
|
|---- B
|     |
|     |---- utility_functions
|
|---- utility_functions

现在我的项目中有 3 次 utility_functions。 通常 sub_Asub_Bmain 应该都指向 utility_functions.

的同一个提交

存储库 A 中的代码必须 运行 本身可用。 如果我只克隆 A 它应该包括我的 utility_functions

A
|
|---- utility_functions

有没有办法只告诉主存储库中包含的子模块依赖相同的 utility_functions?或者这是否打破了子模块的想法,因为它们可以指向不同的提交?或者这只是个坏主意?

main
|
|---- A
|     |
|     |----
|         |
|---- B   |
|     |   |
|     |   |
|     |   |
|---- utility_functions

Or does this break the idea of submodules because they can point to different commits?

是的,正是因为这个原因,这并不实用。

如果您确定 AB 应该 总是 引用相同版本的 utility_functions,那么克隆您的主仓库和仅更新 AButility_functions(没有递归选项),并创建从 A/utility_functionsB/utility_functions../utility_functions 的符号链接。