Can someone advise me on the best way to share repos between projects?

It has been quite a while since Code Plex died, and I haven’t had the time to move my projects anywhere until now. 

I have a series of projects I have recently updated and I want to release them open source, but I don’t want separete copies to appear on someone’s hard drive if they clone multiple projects.

This image shows the directory structure, I rearranged my Projects folder on my hard drive to put everything I want to share under one directory:

My Shared Projects.png

The directory contains 21 solutions, and 35 projects, but it will make up about 7  or 8 main Git projects (is repos the correct term?)

DataTier.Net 

DB Compare

XML Mirror

Regionizer

Transparency Maker

Random Art

Ultimate Helper

Many of these projects share references with each other, so I would like to know is there some way to have Git pull a project in (is that clone in Git talk?) if the project isn’t found locally or should I post one big repository and people can just use the solution(s) they want in it?

And the guidelines for this forum said search before you post, but when I searched nothing remotely similar to my question came up, but I am sure this is an issue someone has encountered before.

And as you answer, I use Visual Studio Git, command line Git speak is not something I know how to do, so please keep answers as if you are talking to a complete gitiot (spell check knew about that word so I must not be the first).

Thanks, giving code away is harder than it seems like it should be. And yes, I know they have this stuff called documentation, but I spent my allocated free time building these projects, so a crash course could expedite these projects being released by many years if I had to wait until I finished reading something; how 20th century. 

Thanks

Hi @datajuggler,

Thanks for all of the context around your issue. That’s super helpful.

To do what you’re looking to do, I think you’ll be interested in Git submodules. Git submodules are a way to nest Git repositories so that you can share the code in them with other Git repositories in a modular way. They aren’t the most intuitive tool, I have to admit, but they’re probably one of the best ways to modularize your code.

I know that you said that you use Visual Studio Git and the documentation above is relating to the command line Git program, but I think that the above documentation will be beneficial to figure out if I understand your needs correctly before sending you down this rabbit hole. I’m not as familiar with Visual Studio Git, but it does look like there is a plugin for Git submodules for use with Visual Studio.

Please let me know if this helps or if I can answer any other questions. Thanks!

Thank you for your reply and the info / links about sub modules.

It scares me that you say they are not the most intuitive, because the first introduction to Git I had was a 10 part video on Git. 

The whole time I was watching it I kept thinking source control shouldn’t require 10 videos to explain. 

As crappy as the program Visual Source Safe was, it had check in / check out and that is all I have ever needed in a source control system. Branching and all this other stuff is way more complicated for my needs.

Since there is no monitization on Github, I am losing my enthusiam to publish here. You got bought for 7.5 billion, share the wealth a little and ad sponsorship to repos or paid repos where people can charge to have subscribers and there would be a lot more of an incentive to bother learning all this stuff. 

At least Code Plex understood developers will build more open source projects if they get paid, yet Git Hub doesn’t understand this so it makes me think I should sell the code and get 1 or 2 sales a year is better than 100,000 times zero.

End Git Hub rant. Thank you for your reply.