How Do I Remove a Git Submodule?

Better Stack Team
Updated on June 24, 2024

To remove a submodule from a Git repository, you need to follow these steps:

Step 1: Remove the Submodule Entry

Remove the submodule entry from the .gitmodules file and remove the submodule directory from the working directory.

You can edit the .gitmodules file manually or use the following command to remove the submodule entry:

 
git submodule deinit -f -- <submodule-path>

Replace <submodule-path> with the path to the submodule directory.

Step 2: Remove Submodule Directory

Now, remove the submodule directory from the working directory and the index. Use the following commands:

 
git rm -f <submodule-path>

Step 3: Remove Submodule Configuration

Finally, remove the submodule configuration from the Git configuration:

 
git config -f .git/config --remove-section submodule.<submodule-path>

Step 4: Remove Submodule Files (Optional)

If you no longer need the submodule files, you can also delete them from the filesystem using:

 
rm -rf <submodule-path>

Note:

  • Be careful when removing a submodule, as it can't be undone. Ensure that you have backups or don't need the submodule anymore.
  • These steps remove the submodule locally. If you've pushed the changes to a remote repository, you may also need to push the changes to the remote repository after completing these steps.
Got an article suggestion? Let us know
Explore more
Git
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.