Managing your own libraries as Git submodules can be awkward: normally, you have to push and pull between different directories to keep everything in sync. A handy trick is to keep the submodule pointing at your public remote (for others who clone your project), while locally overriding the submodule’s URL to use your own local checkout. This way you get fast iteration, and others still have a smooth experience.