Git and GitHub have been around for a few years now.  They are becoming more popular by the day.  I finally got around to looking at them more closely over the last few months and decided to summarize the experiences.

My first experience with GitHub was not the most pleasant.  I was using Visual Studio 2013 which doesn’t seem to have the best integration story (or at least didn’t when I tried it).  The fact that it required that an existing repository be cloned via the GitHub desktop before Visual Studio knew anything about it was the biggest pain.

Visual Studio 2015 on the other hand has a much better use story.  You are able to log into your repository and get a clone of the repository without breaking out to another tool.  The commit process is pretty similar to that of TFS from that point on.

From my trials I have found that GitHub works well as a source control repository.  It is hard at first getting used to the non-Microsoft verbs that are used.  Retraining yourself that you have to do a commit and push before something is actually checked in instead of just doing a

As for working as a team I think that TFS still has the better features.  This may just be because it isn’t as well integrated with Visual Studio.  Having customizable work items in TFS comes in very handy, especially on larger enterprise projects.

The wiki gives a good place to put documentation, but it doesn’t give you a place to manage Word, Excel, PowerPoint, PDF and Visio documents that might have important information about your project. This is where TFS and SharePoint really shine.

Another drawback I see over TFS is that GitHub repositories are public and can’t be private unless you have a paid account.  I can create a free TFS Online account that gives me private repositories and access for up to five users.  This makes it better for the individual developer to the small team.

Of course there is a third option that you can use Git in TFS.  This gives you the source control of Git with the project management features of TFS.  It took a little bit to get may existing code into the new Git-TFS project repository.  Then came the realization that the only source control viewer for Git repositories is in the portal.  The growing pains continue.

Summary

I am sure that the story around GitHub will improve over time, but right now it just seems like people are using it because it is what the cool kids are doing or they are working on open source projects.  If I have to advise a client I am going to suggest they go with the product with the best and most complete story with the best integration to their current toolset.  For now that is TFS, especially if you are a Microsoft development shop.

As for my GitHub experiment, it goes on but I deleted the repository I had created for security reason.  Stay tuned and see what else develops.  The next step is probably Git in TFS.