前言
先看看我的操作步骤
- 第一步 使用 - git init创键本地仓库
- 第二步 使用 - git submodule add -b master xxx添加子模块
- 第三步 手动删除了该子模块 - 此时 - .git目录下文件依然存在
- 第四步 使用 - git commit提交并使用- git push推送到远程仓库
这时, 需求来了 我想恢复子模块, 该如何操作?
假如我先进行commit再删除, 那么我直接使用git submodule update --init --recursive就能立马从.git本地仓库中检出恢复
可偏偏我是先删除后 再进行commit, 远程仓库肯定是不包含子模块的, 这时该怎么办呢?
问题解决
不用担心, 只要.git仓库中依然占用了存储空间, 意味着本地仓库还存在之前添加的子模块代码, 那我们就能从里面抓出来
只需要换个指令即可 如下:
| 1 | git submodule add -b master -f git@github.com:xxx.git | 
这个命令不是从远程仓库重新拉取代码, 而是优先从本地检出, 无论文件删除是在commit前还是后都可用, 关键一定要加上-f, 否则没有效果
本文为作者原创 转载时请注明出处 谢谢
