前言
先看看我的操作步骤
第一步 使用
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
, 否则没有效果
本文为作者原创 转载时请注明出处 谢谢