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

无法拉取Git仓库子模块?Windows环境下问题求助

解决Git子模块跨系统路径导致的克隆失败问题

问题场景

本地已通过GitHub Desktop克隆Repo1和Module1至C:\Users\Me\Documents\GitHub\Repo1、C:\Users\Me\Documents\GitHub\Module1,远端Repo1已添加Module1为submodules/Module1子模块。执行git submodule update --init时出现路径解析错误,生成的submodules/Module1/.git文件包含类Unix风格相对路径,导致Git无法找到子模块仓库,同时GitHub Desktop无法识别Repo1。

解决方案

方法一:Git CLI 手动修复

  1. 清理错误残留

    • 进入Repo1根目录:
      cd C:\Users\Me\Documents\GitHub\Repo1
      
    • 删除错误生成的子模块目录:
      rmdir /s /q submodules\Module1
      
    • 删除.git/modules下的残留子模块仓库(如果存在):
      rmdir /s /q .git\modules\submodules\Module1
      
    • 重置子模块配置:
      git submodule deinit -f submodules/Module1
      
  2. 重新初始化拉取

    • 执行初始化命令,强制重新拉取子模块:
      git submodule update --init --recursive
      
    • 若仍失败,手动重新添加子模块(确保URL与远端一致):
      git submodule add https://github.com/MyOrg/Module1.git submodules/Module1
      
      添加后可提交变更同步到远端:
      git add .gitmodules submodules/Module1
      git commit -m "Fix submodule path compatibility for Windows"
      

方法二:GitHub Desktop配合CLI修复

  1. 删除Repo1中submodules/Module1/.git文件,让GitHub Desktop重新识别仓库
  2. 打开GitHub Desktop,切换到Repo1仓库,点击顶部菜单栏「Repository」→「Open in Command Prompt」
  3. 执行上述CLI方法中的清理和重新初始化命令
  4. 返回GitHub Desktop,刷新仓库即可看到子模块被正确拉取

注意事项

  • 跨系统协作时,避免手动修改子模块相对路径,Git会自动处理Windows与类Unix的路径分隔符差异
  • 不要直接编辑.git文件内的gitdir路径,通过Git命令重置是更安全的方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:45:34