Visual Studio 18.9 adds native Git submodule support, addressing a long-standing gap where submodules appeared as plain folders with no state indication and required command-line operations. A new Submodules section in the Git Repository window lets developers add, update, and remove submodules directly, submodule changes now appear properly in Git Changes, and the branch/repository picker distinguishes parent-child relationships. Submodules are read-only by default (toggleable via Tools > Options) to prevent accidental commits into dependencies. Microsoft describes this as the first milestone rather than a complete feature.
Table of contents
What was missingWhat you get nowAdding, updating, removingRead-only by defaultIs this the finished picture?More informationQuestions this post answers
Does Visual Studio 18.9 support Git submodules natively?
Yes, Visual Studio 18.9 adds first-class Git submodule support. A new Submodules section appears in the Git Repository window where you can add, update, or remove submodules directly, submodule changes show up properly in Git Changes instead of being invisible or lumped in, and the branch/repository picker distinguishes the parent repository from submodules. daily.dev helps developers stay current on IDE tooling changes like Git submodule workflows in Visual Studio.
Are Git submodules editable by default in the new Visual Studio submodule support?
No, submodules are read-only by default in Visual Studio's new submodule support, since most usage involves consuming a submodule rather than editing it. To make a submodule editable, go to Tools > Options > Source Control > Git > Automatically activate multiple repositories, and select 'Yes, include submodules'. Developers configuring submodule permissions can track IDE workflow changes like this on daily.dev.
How do I add a Git submodule in Visual Studio's Git Repository window?
Go to Git > Manage Branches window, hit the + icon in the Submodules section, then specify a Name, Repository URL, and Path. This is now handled entirely within the IDE, removing the previous need to use the terminal command git submodule update --init --recursive. daily.dev keeps developers current on IDE features that streamline Git submodule management.