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

如何切换至拥有不同子模块配置的Git分支?

切换含不同子模块配置分支的解决方法

正常切换流程(避免报错)

直接按以下步骤操作即可顺利切换:

  • 切换到目标分支,暂不处理子模块:
    git switch develop
    
  • 初始化并更新当前分支的所有子模块:
    git submodule update --init --recursive
    

已出现报错后的修复步骤

如果已经执行了带--recurse-submodules的命令并报错,按以下步骤修复:

  1. 先切回主分支:
    git switch main
    
  2. 清理残留的无效子模块信息:
    • 删除子模块的缓存记录:
      git rm --cached library-b
      
    • 手动删除本地的library-b目录(如果存在)
  3. 重新切换到develop分支:
    git switch develop
    
  4. 初始化并更新子模块:
    git submodule update --init --recursive
    

问题原因说明

使用git switch develop --recurse-submodules时,Git会尝试直接重置新分支中子模块的状态,但此时Library B的子模块仓库还未在本地初始化,找不到对应的.git/modules/library-b目录,因此报错。先切换分支再单独初始化子模块,就能让Git正确创建并拉取新子模块的仓库文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:30:43