### Add a submodule ``` git submodule add https://github.com/janjarfalk/canvasrunner.git components/canvasrunner/ ``` ### Update all submodules ``` git submodule foreach git pull origin master cd .. git commit . -m "Updated submodules" git push ``` ### Remove a submodule ``` git submodule deinit components/canvasrunner git rm components/canvasrunner ``` ### Edit a submodule ``` cd components/canvasrunner <edit> git commit . -m "Edited" git push cd ... git commit . -m "bumped canvasrunner" git push ``` ### Clone repositories with submodules ``` git clone --recursive ``` ### Pull submodule if you forgot to clone --recursive ``` cd components/canvasrunner git submodule update --init ```