This surely has to be a duplicate since its a common scenario, if so pls direct me to a good link.
I have common project (class library) that will be used across many solutions, say, a common solution which I will call dll shared between solutions A and B. So this is how the directory structure right now is:
Solution Common (dll)
      - Project Common
Solution A
      - Project A1
      - Project A2
      - Project Common #only referenced, so logical presence, not in real
Solution B
      - Project B1
      - Project B2
      - Project Common #only referenced, so logical presence, not in real
Now what I need is
- a git repository in - dllso that I can commit the changes i make to- dllfiles.
- a git repository in - Aso that I can commit the changes i make to files of- Aas well as- dllfiles. (Since in visual studio I have both projects under one solution, editing them both is easy but I should be able to commit them both together). Also it would be welcome if I could pull any specific commits of- dllthat was made from- dllrepository, but its not absolutely necessary.
- Same as above for - B.
Basically I need 3 repositories so that I can individually commit in 3 different solution folders but I also need the ability for dll repository to be shared between A and B from which I can commit and pull etc.
My questions are:
- Is it possible? 
- If so how would I structure my repositories? 
- How will I commit/pull - dlland- Atogether?
One solution that is already coming to me is to have one giant repository for all the 3 solutions outside its scope but that seems so inelegant as I have other solution folders too along with A and B.
 
     
    