You need to enable JavaScript to run this app. 含Git子模块的仓库合并分支时如何同步更新子模块版本?
优惠活动
大模型
产品
解决方案
定价
更多

含Git子模块的仓库合并分支时如何同步更新子模块版本?

方案1:合并后快速同步子模块版本

  • 合并完成停留在未提交状态时,直接执行 git submodule update bar,Git会自动将bar子模块切换到当前父仓库暂存区中记录的、来自main分支的zyx987提交,不需要手动输入哈希值
  • 之后执行 git add bar 即可将正确的子模块版本纳入提交,执行 git commit 完成合并即可

方案2:合并时自动同步子模块

该配置需要Git 2.14及以上版本支持
如果不想每次合并都手动执行update操作,可以通过配置实现合并自动处理子模块:

  • 单次合并使用参数:执行 git merge --recurse-submodules=yes main,Git在合并过程中就会自动同步所有子模块到目标分支对应的提交,不会再出现子模块修改未暂存的情况
  • 全局永久生效:执行 git config --global merge.recurseSubmodules true,之后所有仓库的合并操作都会默认自动同步子模块版本,无需额外加参数

原理解释

你之前手动add无效是因为:合并后父仓库的暂存区已经保存了main分支对应的子模块zyx987哈希,但你本地工作区的子模块还停留在原特性分支的abc123版本,直接add只会把工作区当前的旧版本哈希提交,所以需要先把子模块工作区同步到父仓库暂存区记录的哈希值,再执行add操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:06:02