Technology is always moving and development teams need to cater for different platforms, languages, and think about how they collaborate together to provide end-users with the best experience.
Not only do teams need to think about the different Operating Systems where their applications will run, but you also have to think about browsers, mobile devices, look at all the different JavaScript frameworks and how is your backend going to be designed and developed.
Each choice brings a different challenge to the table. You may need to use a different Development Environment or even different Operating System to be able to take advantage of a specific technology. Once you pick your IDE, then you have to figure out where you are going to store your source code, which hopefully entails more than just using your Dropbox folder as a backup. You need to be able to not only collaborate with your team that is using the same technology, but in a lot of cases, you may want to collaborate with teams in other technology stacks. Maybe you have a .NET service that is consumed by an HTML 5 app, Android, and iOS app. How do you get all those pieces in the same source control repository while not making it impossible for developers to get their work done? And how can you have a single place where you store all your User Stories, development tasks, and bugs?
Git is a Distributed Version Control System that has gained a lot of popularity in recent years. You can use Git across platforms and it being very lightweight and fast makes it very compelling as a source control provider for your teams.
There are no IDE restrictions since Git you can access it through command-line, and most major IDE’s have support for it via a Plugin. You are able to take advantage of Git’s features to improve your development workflow by committing early and often and integrating with the rest of your team at the right time. Git allows you to have a shared repository where all team members synchronize with.
Starting with TFS 2013, and with Visual Studio Online, Microsoft introduced Git as a Version Control option in Team Foundation Server. So now you have both Team Foundation Version Control and Git. When you are using a Team Project that is configured with Git as its Version Control System, anyone that has access to the server and has Git tools on their machine is able to interact with Git hosted by TFS. This is not Microsoft’s version of Git, this is a full-blown Git repository. Internally, it is different since Git is file-based and doesn’t use SQL Server as a backend, so Microsoft had to integrate that with TFS, but the service has the same endpoints that you would see with your local Git Server, GitHub, BitBucket or any others. The tools that you use to connect to those, would be the same tools that you would use to connect to Git hosted by TFS.
The best part is that you get to take advantage of all the other Application Lifecycle Management features that TFS brings to the table such as Planning tools, Build Automation, Load Testing, Test Case Management, Release Management, and more.
If you want to get started with Git and be successful with it, while staying in Visual Studio, I created a Pluralsight course that you may want to check out: Git for Visual Studio Developers.