It may not be simple, it may not be easy, but git is not scary. Now, I’ve been using git for less than a year now, professionally. I had dabbled in git personal projects for the year before that. My primary Source control had mostly been TFS (Team Foundation Server), and I had been exposed to subversion on a major project before too. Full disclosure, I’ve never used Visual SourceSafe. Just Sayin’. I hear it was pretty good. But when you compare and contrast all the source control systems out there, each of them has their own pros and cons (including git). From my experience bravely going all in, git has been a ray of light, enhancing my developer flow. At a minimum, it chases away some of those pain points I had using TFS Source Control. git is not scary.
But if you’re happy with what you’re using, why would you change?
I’ve gone to some authoritative sources to look at some stats. Let’s start with Stack Overflow:
Ok, what can we take away from this graph? Well, all source control tags have <1% activity per week across Stack Overflow. We see git has twice as much activity as any others. But what we can’t tell is, does that mean more people has issues with git and need to ask questions? Or does it mean proportionally more people are using git? Hard to tell. Let’s try the other authoritative source of everything: Google.
Looking at Google Trends, It’s clear where the people are storing their code:
I defer you onto Wikipedia’s Page on git for history and details, but the gist of it is that git is an Open Source Distributed Version Control System (DVCS), written by Linus Torvalds.
Distributed vs Centralised? Basically most of your traditional source control (TFS) has been centralised. There is one server, and everyone checks out from it, and commits to it. There may be an offline mode, but you will need to actively reconnect before you can commit your changes. With git, and most distributed source control tools, every copy is a source of the truth, and you can share changes amongst yourselves commit your own changes, pull in other peoples changes, in a distributed fashion. Of course, that doesn’t mean you can’t have a common place to centralise your changes as a team:
It’s ironic that Git is a distributed version control system but the world now pushes all their code centrally to GitHub. Scott Hanselman
With git, any copy is an entire copy of the repository, its full history, everything from everyone you have pulled in changes from. You can take any new changes you make, and share them around as differences, based on what parts of the common history has already been retrieved from anywhere so far. Sharing to another team member is no different than sharing to GitHub, GitLab, BitBucket, Visual Studio Online, or any other host provider out there. This adds a large amount of flexibility to the workflow you end up using, and the power to be truly working offline, and still commit your work.
One last set of stats to finish up with is githut.info. This site gives you a view on GitHub’s statistics. We can see from their site that the C# language is above average in all of the stats. Sure, its not right at the top, but We have do decide how we are reading this graph. Primarily, I suggest it reflects the distribution of usage of those languages relative to each other. It could also reflect the likely-hood of people who use those languages to use GitHub. It is hard to say. But what it does tell you, is that .Net programmers are using GitHub, and therefore using git. So much so, that all of Microsoft’s Open Source Software and their new .NET Foundation released over the last year has been made public as git repositories, through GitHub.
Everyone around you is using GitHub, a precedence has even been set by Microsoft themselves through TFS and Visual Studio Online supporting git alongside Team Foundation Source Control, and now their .Net Foundation. And even before that .Net opensource software had been migrating across from CodePlex, to take advantage of what git, especially hosted on GitHub, provided their projects. Enlighten your mind by giving it a go, and I promise there is nothing to be afraid of. Job interviews are scary, people swarming towards PHP in droves is scary. And git, well, git is not scary.