Git嵌套子模块中提交变更的追踪问题
嵌套Git子模块的状态识别问题
不行,你必须在子模块B中提交对A的新引用,主仓库R才能识别到A的提交变更。
原因很简单:Git的子模块追踪是层级独立的——
- 主仓库R只负责记录子模块B的特定提交哈希值,它不会深入解析B内部的目录结构或子模块状态。
- 当你切换A的提交后,B的工作区会因为内部子模块状态未提交而标记为
-dirty,但R只会感知到B的当前状态和自己记录的B的提交不一致,不会读取B内部关于A的追踪信息。
如果想让R间接体现A的变更,步骤是:
- 进入子模块B的目录,执行
git add A和git commit,把A的新提交引用固化到B的提交记录里。 - 返回主仓库R,此时执行
git diff就能看到B的提交哈希变化,这就对应了A的变更。
内容的提问来源于stack exchange,提问作者LuxGiammi
相关产品推荐
相关产品推荐

