【发布时间】:2017-08-30 10:47:50
【问题描述】:
我有以下 git 存储库
VectorRandomString
String 依赖于 Vector,并将其添加为子模块。 向量子模块随机。 Random 没有依赖关系。
Module: Random-
Module: VectorSubmodule: Random
-
Module: String-
Submodule: VectorSubmodule: Random
-
当我更改Vector 内部的Random 子模块(不是实际模块Random)内部的某些内容时,它不会自动更新Module: Random 或其他存在于其他地方的Submodule Random。
当我更改Vector(模块)内部的某些内容时,它不会更新String 中的Vector。如果我访问String 的存储库并输入git pull,它声称一切都是最新的。如果我在submodule Vector 中输入cd 并输入git pull,那么它才会真正更新我的submodule Vector。除此之外,它还希望我将更改提交到 String 存储库,即使 String 内部没有任何更改。
如果我有一个包含 50 个子模块的存储库怎么办?我的子模块将不断地发生变化,我不想在每次想要触及我的项目时都拉动,而且还要提交该拉动,因为它是改变的子模块。必须有一种更简单的方法来做到这一点。
【问题讨论】:
-
作为基础架构的一部分,git 会保留您使用子模块的位置的提交 sha(即为什么在更新子模块时需要在父级中提交 - 您更改了 commit 正在使用子模块!)。这是因为该存储库的每个“客户端”都可能在不同的版本中使用它。如果您不想在添加新功能(和错误)时更改或更新一个客户端,但希望其他人使用最新的,这一点就变得很重要。
标签: git git-submodules