I'm freelancer who code for my customers. I have my own code base (code which I reuse in projects) which I developed throughout the times. I use git for code version control.
My own code base consists of several git repositories (.NET libraries, C++ libraries, etc.)
When I setup a new project for a customer I create new git repository for it and I add libraries from my code base as a git submodules to the project repository.
It works for me, but a problem arises when I have to share my code with customer. I would like to simply send him the git repository of the project, but I don't want to share with him my whole code base (e.g. all my .NET libraries which are included as a git submodule in the project repository). Only code really used in the project should be shared.
I can think of dividing my code base to smaller parts (not one git repository containing all my .NET libraries, divide it to smaller chunks). However I'm not sure it's really a solution.