Git-submodule(4)子模块采坑记录

在项目中使用了submodule来管理子模块,在公司使用没遇见什么问题,回家后在家中使用的过程中发现submodule加载时报错,并且子模块下的文件夹为空。搞了一段时间才找到问题所在,在此记录一下,防止忘记。

序号 问题描述 问题分析 解决方法 参考文档
1 Server does not allow request for unadvertised object *** 无法从服务器获取未公开的对象,后边跟从的是一个版本的commit,从网页上搜索到的结果是自己的子模块在服务器上边不存在,自以为是项目没提交上去,于是检查公司电脑项目是否在最新的提交版本上,一切正常,且Git status正常,于是查看Git submodule status ,公司电脑上的项目和家中电脑项目竟然不一致,也就是说我的子模块出了问题。

需要新建分支暂时保存改游离分支的提交,然后到master合并分支,最后删除游离分支。不建立游离分支直接切换到主分支会丢失游离状态下建立的改动

查看公司项目的子模块的Git status ,发现报红: HEAD detached *** ,也就是说子模块项目指针游离,服务器上边的子模块master分支可能不是最新的,没有对应的commit对象所以,家里电脑不能检查出对应的代码
知道了问题所在那么一切就简单了。

首先,查看子模块现在所在分支 git branch -v

果然不对,没有在master上,且存在指针游离。建立新分支来保存当前状态 git branch -b new

合并分支
git checkout master
git merge new
git branch -d new
《git book - git-submodule》
本站所有文章除特殊声明外均为原创,未经允许禁止转载!
换个声音
停止播放