Git中Submodule子模块无法找到指定依赖

712 阅读2分钟

约 6 分钟您可以阅读完本篇文章 🕰️

❓ 问题描述

通过 git submodule 在项目中使用其他小伙伴维护的下游系统,包管理工具加载时,出现了无法找到下游模块中的某个类,错误截图如下:

错误截图

🚑 解决思路

  1. 检查下游模块存放位置是否存在代码,确认不是项目映射问题
  2. 检查项目的根目录下, .gitmodules 文件中是否存在,无法找到的依赖类的对应仓库地址
  3. 上述两个解决思路,如果不存在代码,并且 .gitmodules 中存在无法找到的依赖类的对应仓库地址,那原因就是下游系统仓库在添加时,没有使用正确的方式 git submodule add 的方式添加

🧰 解决步骤

子列表的命令代表,上述错误截图中实际场景处理执行的命令,请根据自己场景切换

  • 终端执行 git submodule init && git submodule update && git pull --recurse-submodules,保证目前已拉取,所有正常依赖的下游系统仓库

    • git submodule init && git submodule update && git pull --recurse-submodules
  • 终端执行 git rm --cached 子模块存放位置的文件夹,删除 .git 中的缓存

    • git rm --cached /packages/haxibiao/helpers
  • 请进入路径 /项目地址/.git/modules/子模块存放位置的文件夹,检查是否存在包管理工具无法找到的模块,如果有,请删除它

    • cd 项目/.git/modules/packages/haxibiao
  • 回到项目的根目录,终端执行 git submodule add 子模块仓库地址(xxx.git) ,使用正确的方式添加 git submodule

    • git submodule add http://code.haxibiao.cn/packages/haxibiao-helpers.git packages/haxibiao/helpers
  • 尝试重新安装项目依赖,如果此时提示模块已存在,请删除子模块存放位置的文件夹,再次安装即可

🤔 注意事项

  1. 不要直接在项目中的 .gitmodules 文件中去删除无法找到的依赖类的对应仓库地址,因为这样 git 会出现 merge,需要你 git stash ,这样是无法处理目前的问题的(重要)

🎉 结语

本人技术能力有限,如果有写的不对的地方,请留言斧正,十分感谢🙇
如果没有解决您的问题,首先十分抱歉耽误您的时间,可以在下方评论区留言,看到后我会第一时间回复🙍‍♂️

Git中Submodule子模块无法找到指定依赖 | 创作者训练营 征文活动正在进行中......