Suppose that I have a submodule dir1/dir2
(created via the steps shown below). How do I restore the submodule dir2
after having deleted it?
git submodule update
complains that the submodule does not exist, and git reset HEAD --hard
restores dir2
but not its contents. I am creating the submodule in the following way :
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? ****
Initializing a git repo within dir2
(cd dir2; git init
) doesn't make dir2
a submodule.
It just make dir2
a nested repo which will be ignored by any parent repo.
Deleting dir2
means you have no direct way to retrieve its content.
You could have done git submodule add /another/path/dir2
, with dir2
a repo outside of dir1
.
Then it would have been possible to restore dir2
.