Git Submodules are like disk mounting: these are mounted to locations inside parent repository. With time preferences changes: style or tooling or any reasons which may lead you to change the location of a submodule.
Git being flexible supports this use case and  provide mv command which does the magic:
git mv <source> <destination>By style, git mv command is similar to Unix mv command.
In Action
Let’s try git mv on an existing submodule. There exist git submodule on path pages/article; it is required to be moved to a new path content/article.
$ git submodule                          
 bd6cd4271e782cf1200bbeb263a6d897666cd785 pages/article (heads/master)moving submodule to the new location: content/article
$ git mv pages/article content/article 
$ git submodule
 bd6cd4271e782cf1200bbeb263a6d897666cd785 content/article (heads/master)Voila, the submodule has been relocated !!
