I never expect renaming a git repo, which, more specifically, is the top-level folder holds the project, would be so hard. Yes, the project containing some submodules, but it is
You have a couple of options, they end up being the same thing:
clone again
Instead of renaming the folder - just clone again
$ cd /project/original
$ cd ..
$ mkdir moved
$ git init
$ git pull ../original master
$ git submodule init
$ git submodule update
Compare original/.git/config
to moved/.git/config
and address any significant differences (missing branches need creating - missing remotes just need adding to the config file).
fix paths
You can rename your project folder, it just needs a little tweaking.
I.e. these files:
$ cd /project/moved
$ find -name .git -type f
All you need to do is edit them to point at the right directory
I.e. these files:
$ cd /project/moved
$ find .git/modules/ -name config
Here, update the worktree
setting:
[core]
...
worktree = /original/path/submodule
To
[core]
...
worktree = /moved/path/submodule
And that's it.
A note about versions
1.7.8 introduced the use of a .git file for submodules and used absolute paths, this was fixed in 1.7.10 - therefore the problem only applies to git repos created with git version 1.7.8, and 1.7.9.