```
git submodule add <remote_url> [<destiny_folder>]
git config --global status.submoduleSummary true
git submodule init
git submodule update
git submodule update --init
git clone --recursive <remote_url> [<destiny_folder>]
git diff --submodule=log
git submodule update --init --recursive
git submodule update --init --remote
git submodule foreach git pull origin master
git submodule foreach "(git checkout master; git pull)"
# if the submodule’s remote URL changed since last used (perhaps one of the collaborators changed it in the .gitmodules), you have to manually update your local config to match this. In such a situation, before the git submodule update, you’d need to run a git submodule sync
git submodule sync
```