如果从本地git仓库中恢复已经删除的子模块

前言

先看看我的操作步骤

  1. 第一步 使用git init创键本地仓库

  2. 第二步 使用git submodule add -b master xxx添加子模块

  3. 第三步 手动删除了该子模块

    此时.git目录下文件依然存在

  4. 第四步 使用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, 否则没有效果

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%