title: Workflow for using git submodules in Visual Studio
body: <p><em>I have some shared code I want to share among a number of solutions.</em> Most examples use the command line, but I want to do it using Visual Studio 2013 (and/or TortoiseGit)?</p>
  
  <pre><code>- SolutionShared
    - .git
    - Project1Shared
    - Project2Shared
  - Solution1
    - .git
    - ProjectFoo
    - ProjectBar
    - [SolutionShared]
      - [Project1Shared]
      - [Project2Shared]
  - Solution2
    - .git
    - ProjectBaz
    - ProjectQux
    - [SolutionShared]
      - [Project1Shared]
      - [Project2Shared]
  </code></pre>
  
  <p>What I did was to create a new solution <code>SolutionShared</code>, add all my shared code there, and add it to its own git repo. I then used TortoiseGit (as I couldn't figure out how to do it Visual Studio) to add that shared repo as a git submodule to <code>Solution1</code> and <code>Solution2</code>.</p>
  
  <p><strong>1. What do I do in Visual Studio?</strong><br>
  My two solutions now have a <code>SolutionShared</code> directory. Do I simply add its two child projects (<code>Project1Shared</code> and <code>Project2Shared</code>) in Visual Studio?</p>
  
  <p><strong>2. How do I make changes to the shared code from within the non-shared projects</strong><br>
  If I'm in one of the non-shared solutions and make a change to something in the submodule, how do I commit and push it back to the shared solution's repo (<code>SolutionShared</code>) so that it's available to all solutions that reference it?</p>