You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行git merge origin/master后子模块提交未同步的原因咨询

子模块版本未同步的原因
  • 父仓库是通过具体提交哈希来记录子模块版本的。你执行git merge origin/master时,如果本地dev分支和origin/master在子模块的哈希记录上存在冲突,解决冲突过程中很可能误保留了本地旧的子模块哈希,而非origin/master中对应的新哈希,最终导致推送到远程dev后,子模块版本没跟上origin/master的状态。
  • 另外,默认的git merge只会处理父仓库里的子模块引用变更,不会自动拉取子模块的最新代码(需额外加--submodule参数),但你遇到的核心问题还是冲突解决时的哈希选择错误。
为什么git pull --rebase origin master能解决问题
  • git pull --rebase origin master的本质是将本地dev分支的提交,逐个变基到origin/master的最新提交之上。这个过程中,Git会直接继承origin/master里的子模块哈希记录(只要你本地没有单独修改过子模块的引用),避免了merge时需要手动选择冲突版本的环节,自然就同步了子模块的正确版本。
  • 要是加上--recurse-submodules参数,这个命令还会自动拉取子模块的对应代码;就算不加,只要父仓库里的子模块哈希同步正确,后续执行git submodule update就能拉到匹配的子模块版本。

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:35:20