I'm developing for an embedded project that has the Linux source tree as a submodule. I'm currently working on a non-development machine, so I'll never build with this repository; it's just for reference.
At one point I initialized the linux submodule (bringing in about 2.5GB of data), but now I want to reverse the process, leaving the linux submodule uninitialized in this repository. To be clear, I don't want to check in any changes to the submodule as far as Git is concerned; I just want my disk space back.
How can I do this? I could delete the ./linux
and .git/modules/linux
directories to get rid of all the unneeded data, but I suspect that will leave git righteously confused and annoyed.
The first three steps of the following are how you permanently delete a submodule; the fourth step will tell git to restore the module, but not to reinitialize it.
1) Remove the submodule entry from .git/config:git submodule deinit -f path/to/submodule
2) Remove the submodule repository from the superproject's .git/modules directory:rm -rf .git/modules/path/to/submodule
3) Remove the submodule directory located at path/to/submodule:git rm -f path/to/submodule
4) Tell git to discard the removal of the submodule; it will return the module to the "uninitialized" state, leaving it with no changes to be committed:git checkout -- .
Source
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With