Git helper shell-script to move submodules within the super-repository
Usage: git-submodule-move [-v|--verbose] path/to/submodule new/path/ Example:
git-submodule-move --verbose path/to/submodule new/path/ updating super-repository's submodule name updating super-repository's submodule path updating super-repository's submodule repository config updating submodule's pointer to super-repository config moving super-repository's submodule repository moving submodule directory # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: .gitmodules # renamed: path/to/submodule -> /new/path/submodule # Please inspect the changes and if satisfied commit the change The directory layout changes thus:
before: ./path/to/submodule after: ./new/path/submodule Confirm the changes are acceptable (git status) then COMMIT them
To revert a submodule move before commiting it simply reverse the arguments. E.g.
git-submodule-move path/to/submodule new/path/ ... # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: .gitmodules # renamed: path/to/submodule -> new/path/submodule # git-submodule-move new/path/submodule path/to/ ... # On branch master nothing to commit, working directory clean Please inspect the changes and if satisfied commit the change The script can move submodules that use local (path) and external (protocol, e.g. git://) URLs in the .gitmodules file