git 子模块的公共子模块

use*_*005 5 git git-submodules

我有一个main由多个子模块组成的应用程序AB并且utility_functions: 这两个子模块A及其B本身都包含该子模块utility_functions

main
|
|---- A
|     |
|     |---- utility_functions
|
|---- B
|     |
|     |---- utility_functions
|
|---- utility_functions
Run Code Online (Sandbox Code Playgroud)

现在utility_functions我的项目中有三次。通常sub_Asub_Bmain都应该指向同一个提交utility_functions

存储库中的代码必须能够A自行运行。如果我只克隆A它应该包括我的utility_functions

A
|
|---- utility_functions
Run Code Online (Sandbox Code Playgroud)

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

main
|
|---- A
|     |
|     |----
|         |
|---- B   |
|     |   |
|     |   |
|     |   |
|---- utility_functions
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 1

或者这是否打破了子模块的想法,因为它们可以指向不同的提交?

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

如果您确定AB应该始终引用相同版本的utility_functions,则克隆您的主存储库并仅更新AButility_functions(不带递归选项),并从A/utility_functionsB/utility_functions到建立符号链接../utility_functions