假设我有一个子模块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? ****
答案 0 :(得分:2)
在dir2
(cd dir2; git init
)内初始化git仓库并不会使dir2
成为子模块。
它只会使dir2
成为嵌套仓库,任何父仓库都会忽略它
删除dir2
表示您无法直接检索其内容。
您可以git submodule add /another/path/dir2
完成dir2
,dir1
外的 的回购。
然后就可以恢复dir2
。
答案 1 :(得分:0)
如果你没有提交你的删除,你可以 提交所有其他本地更改,然后执行
git reset --hard