Skip to content

Instantly share code, notes, and snippets.

@aboritskiy
Created March 27, 2020 19:36
Show Gist options
  • Save aboritskiy/40cc1ead17b6263e03e1c6892e9d0f11 to your computer and use it in GitHub Desktop.
Save aboritskiy/40cc1ead17b6263e03e1c6892e9d0f11 to your computer and use it in GitHub Desktop.
Interactively removes all project submodules, saving each remove in a separate commit and stopping before each.
#!/bin/bash
SUBMODULES_LIST=$(git submodule status | awk '{print $2}');
echo "Status before:"
echo
git submodule status
echo
for SUBMODULE_PATH in $SUBMODULES_LIST
do
read -p "Removing $SUBMODULE_PATH proceed? " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo " proceeding ..."
git submodule deinit $SUBMODULE_PATH
git rm $SUBMODULE_PATH
git commit -m "ADHOC feat (remove submodules): Removed submodule $SUBMODULE_PATH"
rm -rf .git/modules/$SUBMODULE_PATH
else
echo " skipped."
fi
done
echo
echo "Status after:"
echo
git submodule status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment