Now, it's not completely shocking. We could have seen it coming since Microsoft started offering Git repos on CodePlex, and more recently offering a Git client for TFS. In any case, these are some big news. Scott Hanselman weighs on some features and some more background here.
For those who are a bit unaware of what the Git situation on Windows looks like these days, I've dotted down these notes:
- msysGit has long been The Way to use Git on Windows. It's basically a port of Git itself, so it's a command-line tool.
- GitExtensions (includes Visual Studio integration), TortoiseGit, Git Shell, posh-git and most other tools are powered by msysGit.
- libgit2 is a native library for doing Git stuff. It is developed completely separate from Git itself. The above tools could (and should) probably use libgit2 instead of hooking onto and around msysGit.
- Github for Windows was the first major Git client on Windows to make use of libgit2
The first to deal with these problems indirectly were Shawn Pearce, Google and Eclipse, creating JGit, basically a Git implementation written in Java. To this effect, Windows-based Java developers (but not many others) were able to enjoy Git collaboration through Eclipse without going through msysGit. Also Git servers like Gerrit and Gitblit were created to run directly off JGit.
Github had another approach tackle these problems with Github for Windows. I tried the early versions and I wasn't directly convinced, but later I used it to demo setting up Git for designers due to its ease of setup. Github for Windows bundles along msysGit for whenever you need to use the command-line, but for its internal operations it uses libgit2.
And now Microsoft are doing it: Bringing Git directly into Visual Studio allows a large number of developers out there to just start using Git without having to install msysGit.
It's really fascinating to see that Github and Microsoft are cooperating on libgit2. One one side, these two companies will start competing more and more as Github moves into the enterprise market, and Microsoft is moving into being a Github-like service provider with its Team Foundation Service.
However, I'm sure that they will both win on this collaboration, and in the end the big winners are you and me: We get a smoother Git experience on Windows, which means larger adoption of Git in general, which means easier conversion for those of us still working with crappy version control systems.