Git子模块提交引用更新:git add路径与git submodule --init选哪个?
正确更新父项目中子模块引用的方法
首先明确两个命令的核心作用:
git submodule --init只是初始化本地子模块配置,让Git识别父项目关联的子模块清单,但它完全不会修改父项目中存储的子模块提交引用,所以不满足你的需求。
针对你子模块使用特定标签(而非跟踪分支)的场景,正确操作步骤如下:
- 进入子模块目录,切换到目标标签版本:
cd submodule/path git checkout <你的目标标签名> - 返回父项目根目录,此时Git会检测到子模块的提交哈希已变更,执行命令将该变更纳入父项目暂存区:
git add submodule/path - 提交并推送到父项目远程仓库:
git commit -m "更新子模块到<目标标签名>版本" git push
完成上述操作后,下次任何人递归克隆父项目(git clone --recursive),或是克隆父项目后执行git submodule update --init --recursive,都会自动拉取到你指定的子模块标签版本。
内容的提问来源于stack exchange,提问作者DDS
相关产品推荐
相关产品推荐

