恢复删除的子模块
Restoring deleted 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? ****
在 dir2
(cd dir2; git init
) 中初始化 git 存储库不会使 dir2
成为子模块。
它只是使 dir2
成为一个嵌套的 repo,它将被任何父 repo 忽略。
删除 dir2
意味着您无法直接检索其内容。
您本可以 git submodule add /another/path/dir2
,使用 dir2
之外 dir1
的回购。
那么就可以恢复dir2
.
如果您没有提交删除,您可以
提交所有其他本地更改,然后执行
git reset --hard
尝试通过以下两个命令“deinit”和“init”所有子模块:
git submodule deinit -f .
git submodule update --init
如果你没有提交更改(至少)
你可以试试这个。它对我有用
git restore path-to-your/submodule-name --recurse-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? ****
在 dir2
(cd dir2; git init
) 中初始化 git 存储库不会使 dir2
成为子模块。
它只是使 dir2
成为一个嵌套的 repo,它将被任何父 repo 忽略。
删除 dir2
意味着您无法直接检索其内容。
您本可以 git submodule add /another/path/dir2
,使用 dir2
之外 dir1
的回购。
那么就可以恢复dir2
.
如果您没有提交删除,您可以 提交所有其他本地更改,然后执行
git reset --hard
尝试通过以下两个命令“deinit”和“init”所有子模块:
git submodule deinit -f .
git submodule update --init
如果你没有提交更改(至少) 你可以试试这个。它对我有用
git restore path-to-your/submodule-name --recurse-submodules
就我而言,我认为还原不起作用,因为它有子模块,这解决了它。
但最重要的是我可以恢复对子模块所做的意外更改(一堆二进制文件创建警告)