My answer probably won't be of much help to you, since I primarily use Mercurial (Hg) and have only dabbled with Git.
I've looked into similar options for Hg and found that it's too much of a hassle having to deal with subrepos and getting them configured correctly. So I just end up with lots of copies of the same kinds of files (libraries, or general purpose scripts that I reuse over many different projects), and I have to try to remember which project I was working on most recently when I updated shared general purpose script if I forgot to update it in my standard directory where I store my scripted tools.
It's a hassle, but from my research in Hg, it's less of a hassle doing it this way than trying to deal with subrepos.
That said, I think Git handles subrepos (aka submodules) differently and perhaps in a way that makes more sense and is easier to use than Mercurial does. The linked StackOverflow question/answer seems to suggest that that is the case.
Anyway, sorry for my mostly non-helpful response. Hopefully someone who is a lot more familiar with Git can provide you some real assistance.