Skip to content

Instantly share code, notes, and snippets.

@myusuf3
Created November 3, 2014 17:36
Star You must be signed in to star a gist
Embed
What would you like to do?
How effectively delete a git submodule.

To remove a submodule you need to:

  • Delete the relevant section from the .gitmodules file.
  • Stage the .gitmodules changes git add .gitmodules
  • Delete the relevant section from .git/config.
  • Run git rm --cached path_to_submodule (no trailing slash).
  • Run rm -rf .git/modules/path_to_submodule (no trailing slash).
  • Commit git commit -m "Removed submodule "
  • Delete the now untracked submodule files rm -rf path_to_submodule
@johannes-steurer
Copy link

Just perfect. Thank you

@michaelmontero
Copy link

amazing

@jonlowrey
Copy link

Thank You!

@elquchiri
Copy link

This seems to be a more modern version (copied from https://stackoverflow.com/a/36593218/2066118):

# Remove the submodule entry from .git/config
git submodule deinit -f path/to/submodule

# Remove the submodule directory from the superproject's .git/modules directory
rm -rf .git/modules/path/to/submodule

# Remove the entry in .gitmodules and remove the submodule directory located at path/to/submodule
git rm -f path/to/submodule

We should upvote this answer

For those of us on Windows, here's the equivalent in Powershell:

# Remove the submodule entry from .git/config
git submodule deinit -f path\to\submodule

# Remove the submodule directory from the superproject's .git/modules directory
rm .git\modules\path\to\submodule -r -fo

# Remove the entry in .gitmodules and remove the submodule directory located at path/to/submodule
git rm -f path\to\submodule

Good response, Thank's man.

@cgair
Copy link

cgair commented Mar 14, 2023

Every time I want to remove a submodule, I come back to this Gist and follow the instructions. It's crazy how difficult it is to work with submodule. Many thanks!

  • 11111111111111111....

@ravikul505
Copy link

thank you so much

@nvcastet
Copy link

Thank you!

@harlesty
Copy link

If you're doing this a lot, you can create an executable script discoverable in your PATH named git-submodule-remove with the following contents: https://github.com/panozzaj/conf/blob/master/common/bin/git-submodule-remove

Then you can run git submodule-remove path/to/submodule to quickly remove it and play uno online card game
Good response, Thank's man.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment