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