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

远程Git子模块分支改名为main本地为master拉取报错如何解决

解决方案

不需要删除子模块重新添加,直接修改本地和仓库的子模块分支跟踪配置即可,步骤如下:

  • 修改主仓库根目录下的.gitmodules文件,找到对应子模块的配置段,将原有的branch = master配置修改为branch = main,如果该段没有显式配置branch字段,直接新增一行即可,参考配置:
[submodule "path/to/your/submodule"]
    path = path/to/your/submodule
    url = https://your-submodule-repo-address.git
    branch = main
  • 在主仓库根目录执行配置同步命令,将.gitmodules的变更同步到本地Git配置:
git submodule sync --recursive
  • 进入报错的子模块目录,修正子模块自身的远程跟踪配置:
    1. 更新远程分支抓取规则,替换旧的master分支抓取配置为main:
      git config remote.origin.fetch "+refs/heads/main:refs/remotes/origin/main"
      
    2. 如果子模块本地当前分支名还是master,直接重命名为main:
      git branch -m master main
      
    3. 将本地main分支关联到远程的origin/main分支:
      git branch -u origin/main main
      
  • 回到主仓库根目录,执行子模块更新命令验证修复:
git submodule update --init --recursive --remote

验证拉取正常后,记得把.gitmodules的修改提交到主仓库。其他协作者拉取到这次提交后,只需要执行git submodule sync --recursive就能自动同步配置,不会复现该报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:33:15