I've used git for my personal projects for years, but that's always working alone, not needing to branch much, etc.  

Our development team at work has decided we are definitely switching to git, and as one of the most experienced git user on the team I have the task of figuring out our project structure. 

Our current structure has a single Source Control, with many Projects. Those source control "projects" may contain multiple folders which contain multiple Visual Studio Solutions which can contain multiple Visual Studio Projects, some of which are shared.  

An example: 

* Main Directory
	+ Folder 1
		- Solution 1
			* Project 1
			* Shared Project 1
	+ Folder 2
		- Solution 2
			* Project 2
			* Project 3
		- Solution 3
			* Project 4
			* Shared Project 1
			* Shared Project 2
	+ Folder 3
		- Solution 4
			* Shared Project 1
			* Shared Project 2

I am not sure at all how to translate this to git properly. The main concern that has been mentioned to me is that if we use git submodules, when checking in changes it has to be applied to multiple repositories. Is there a way around this? Does TFS in Visual Studio handle this in an easy to manage way?  

Anyone have any good information about this kind of thing?