刘勇虎的官方网站
网站内容包含大前端、服务器开发、Python开发、iOS开发、Android开发、网站维护等技术文章。专注于分享技术经验,职业心得体会,IT优秀文章与教程创作。
Stay hungry,Stay foolish,Stay young
在项目中使用了 submodule 来管理子模块,在公司使用没遇见什么问题,回家后在家中使用的过程中发现 submodule 加载时报错,并且子模块下的文件夹为空。搞了一段时间才找到 问题 所在,在此记录一下, 防止忘记。
无法从服务器获取未公开的对象,后边跟从的是一个版本的 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
1. git submodule add <url\> <path\>
2. git rm --cached <path\>
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> src/utils/utilsjs
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached src/utils/utilsjs
hint:
hint: See "git help submodule" for more information.