git子模块的常用子模块

我有一个应用程序main,它由多个子模块A,B和utility_functions组成:

这些子模块A和B本身都包括子模块utility_functions.

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

现在我在我的项目中有三次实用程序功能.
通常sub_A,sub_B和main都应该指向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?

是的,正是因为这个原因才行不通.

如果您确定A和B应始终引用相同版本的utility_functions,则克隆主repo并仅更新A,B和utility_functions(不带递归选项),并从A / utility_functions和B / utility_functions创建符号链接../utility_functions.

点赞