Having used Microsoft’s Visual SourceSafe for source control and then Microsoft’s Team Foundation Server (TFS) for most of my software development career, I was recently exposed to the many wonders of Git (open-source, distributed-control, well-tested and fast). At a client site, our team workflow was switched to Git right in the middle of a very important project, probably not the most optimal time to introduce a new source-control workflow, but oh well. It was high-time to learn Git – trial by fire!
Centralized vs Distributed (the newer paradigm)
I had known of Git as a distributed source-control “system” for quite a while, but was never exposed much to it until I had worked for this client and the team had an urgent need to switch over to Git from TFS in order to enable four teams to work on several parts of one project all at once without corrupting each others’ code. Contrast that with Microsoft’s Visual SourceSafe (VSS), Team Foundation Server (TFS) or CVS, which are products designed to centralized source control on one server.
Git is a fantastic (double-underline?) source-control system & represents the best of the newer paradigm of distributed source-control. There is a steep learning curve (in my opinion) and a price to pay (in time) for using it incorrectly or not learning how to use it on a very simple project first. The compensating factors are that Git is free, open-source, world-class, and fast. Some of the cloud-side, server-side, and client-side tools that support it are not free (most are though). Either way, you should be using it now or very soon as it’s the present and future of source control.
Here are a few learning resources for your benefit:
I am using:
- either GitHub or Atlassian‘s BitBucket (cloud/server-side),
- plus GitKraken or TortoiseGit (client-side)
…to manage my Git repositories (repos). BitBucket is free for individuals and teams of up to five people; GitHub is similar. GitKraken and TortoiseGit are both free to individual developers on their home machines. Aside from that, the purchase prices are reasonable for all of the above if a purchase is necessary for legal compliance. I don’t work for or receive compensation or recognition from either firm.
Summary: Learn how to use Git thoroughly on a small non-critical or personal project with at least one other code contributor before attempting to use it on a enterprise mission-critical project. I cannot emphasize this learning approach enough to save you from time-critical error fixes and just the hassle of having to go through it.