Created
March 27, 2020 19:36
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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