git - 恢复删除的子模块

标签 git git-submodules

假设我有一个子模块 dir1/dir2(通过以下步骤创建)。删除后如何恢复子模块 dir2

git submodule update 提示子模块不存在,git reset HEAD --hard 恢复 dir2 但不是它的内容。我正在通过以下方式创建子模块:

mkdir dir1
cd dir1/
mkdir dir2

cd dir2/
touch 1.txt
git init
git add 1.txt
git commit -m "test"

cd ..
git init
git submodule add ./dir2/
git commit -m "adding submodule"

rm -r dir2
**** Now how do I restore dir2 and its contents? ****

最佳答案

如果你没有提交更改(至少) 你可以试试这个。它对我有用

git restore path-to-your/submodule-name --recurse-submodules

在我的例子中,我认为恢复不起作用,因为它有子模块,这解决了它。

但最重要的是我可以恢复对子模块所做的不需要的更改(一堆二进制文件创建警告)

关于git - 恢复删除的子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27747341/

相关文章:

git 差异 : what is the difference between --cached and --staged

Git 嵌套的子模块和依赖项

git 错误 : unable to index file Crashlytics. 框架/标题

git - 对 git 子模块进行更改,然后将它们添加到我的主项目中

git - 在 github 分支上重新设置

git - 在 IntelliJ 中重构时如何将更改日志保存在 git 文件中?

git - 我怎样才能看到我还剩下多少 rebase?

Git: `git fetch` 报告的数字是什么意思?

git - Jenkins git 子模块更新失败

git - GIT嵌套存储库:Composer与SubModules与Subtree与?