3 Answers
3

You say that you want to go back to before init and update, which would be the situation where the submodule is still present in .gitmodules, but is an empty directory which isn't registered in .git/config.

Suppose your submodule is called foo/bar, then you could do the following:

# Move the submodule out of your repository, just in case you have changes
# in there that you realise afterwards that you'd like to preserve:
mv foo/bar/ ~/backups/old-foo-bar/
# Recreate the submodule directory, but empty this time:
mkdir foo/bar/
# Remove all the config variables associated with that submodule:
git config --remove-section submodule.foo/bar
# Note that the submodule name is *without* the trailing slash

What I wanted was a way to preserve the submodule, but just remove the populated files in my workspace. Turns out, I can just delete the directory and it doesn't affect the submodule in any way. So, in my case, my submodules are in a directory named projects. I can just remove projects/toolchain and the contents are gone, but git doesn't record the deletion. Thanks to everyone for trying this one.
–
user561638Mar 22 '11 at 14:20