6 Myths Preventing Developers from Using Git

Jul 23 2014 by Tobias Günther | 10 Comments

Nowadays, you’ll have a hard time finding a professional developer who doesn’t use a version control system (VCS) such as Git.

But, there are still a few among us who choose not to use a VCS due to preconceived notions they might have about version control.

Here are some myths and excuses that dissuade developers from integrating Git — and any version control system in general — into their workflow.

Myth 1: I don’t need Git because I back up my files

Creating regular backups of your work is definitely a good habit. Consider keeping this habit even when using Git.

But Git provides you a lot more benefits compared to just a system of backing up your files.

Without a VCS, you’ll run into a several of issues.

How do you name your backups? If you’re a very organized person, you might be able to stick to an actually comprehendible naming scheme like acme-inc-redesign_2013-11-12_v23.html. However, any deviance from the file-naming convention quickly leads to confusion and, quite possibly, issues with your code.

Let a system like Git worry about the minutia so that you can focus on what you do best: Writing code.

How much of your work are you saving? Only the changed files or the complete project? In the case of the former, it will be tough to see a full picture of a version/variant of your project at any given time. In the case of the latter, where you are backing up the entire codebase at regular intervals, you’ll have huge amounts of redundant files lying around on your hard drive, and more files mean more complications.

The most important issue that can be solved with Git is probably this one:

How do you know what’s different in these backups? Very few people actually take the time to carefully document each and every change they make. On the other hand, Git acknowledges that there is only one project. Everything else — all the past versions and variants — are neatly tucked away in the back-end of the version control system, ready for you whenever you need it. And when you do need it, you can request any version at any time and you’ll have a snapshot of the complete project right at hand.

In addition, you can determine with great precision what has changed in each file. You can tell which lines have been added, which lines have been removed, and which ones have been modified — which means that bug-tracing, emergency rollbacks to stable versions of the project and partial-version rollbacks are much easier processes.

Myth 2: Git is too complicated. It’s not worth the hassle.

People often overestimate how deeply they need to dive into Git to get its main benefits.

It’s true that you can spend a whole lot of time trying to wrap your head around all the fanciest, edge-case Git commands — Git is indeed an extremely powerful and flexible system.

But, it’s also true that you can work productively and reap Git’s major perks with just a handful of commands.

Yes, learning a new skill means more additional work — no one can spare you from that — but the benefits you’ll gain when you start using Git vastly outweighs the time and effort required to learn it.

Learning Git will improve your projects’ quality, as well as your efficiency and productivity as a developer. Also, you will be able to collaborate with other developers in a more systematic and reliable way, delivering even more development-productivity improvements to you and your team.

Myth 3: Git is only for development teams

Distributed version control systems like Git or Mercurial allow you to work completely on your local computer. Should you have projects where you don’t collaborate with anyone else, it’s perfectly valid to perform all tasks on your machine. Git provides as much benefit to the solo developer as it does to dev teams.

You don’t need a remote server or code-hosting service to use Git and to reap its usefulness.

But, it’s worth pointing out that using a remote code-hosting service like GitHub makes sense even as a solo developer, so that you can have external backups of your code in case your computer breaks down or gets lost, or to sync your projects safely across multiple computers (perhaps you have a work laptop and a personal computer at home that you use to develop code with). However, this isn’t necessarily something you need to do; it’s only an optional advantage.

The benefits that Git brings you remain the same, no matter if you’re working in a team or on your own.

Myth 4: The command-line interface is too complicated

You don’t need to be a command-line interface (CLI) expert to use Git. In fact, a handful of commands is all most developers will ever need.

You can learn Git’s important commands in less than an afternoon: We created a guide called Command Line 101 that you can read to learn about the CLI as it pertains to Git — it’s part of our free online book called Learn Version Control with Git: A step-by-step course for the complete beginner.

But let’s just say a handful of basic commands is still too much contact with the CLI for you. Or maybe you made a strange, unbreakable blood pact with a friend never to use the command-line interface ever again, or, for some reason, you simply cannot use a CLI. You can still use Git through an application that has a graphical user interface (GUI). If you’re on Windows, I recommend you take a look at Tortoise Git. On Mac OS, you should give Tower — an app that my company, fournova, has developed — a look-see.

Even for users that are comfortable with the command line, a GUI could still improve productivity by making complex Git tasks easier.

Myth 5: I’m afraid I’ll break something

It should be the other way around: You should be afraid to break things if you don’t use a version control system because it’s hard to retrace your steps and your code-base changes without one.

Version control is our safety net. When things catastrophically break down, we can easily roll back to a previous version that’s stable.

Using Git, you will be able to:

  • undo your local changes (partially or completely)
  • restore any historic version in case something goes wrong
  • revert the effect of any change you made in the past

And I would also like to point out what is in my opinion Git’s most important feature: branches.

Branches provide us with a secure ecosystem for trying out new features, completely separated from other parts of our development project. This encourages us to experiment with new code and to see and test the effects of any code changes while giving us the confidence that we won’t be affecting anything outside of the current branch.

Myth 6: Git is all hype. It’s just a popular trend that will later fade away.

First, Git is definitely not the one and only version control system out there. There are many other great VCS options to consider, each one with its own unique merits.

But it’s not simply by chance that major projects such as jQuery, Rails and the Linux Kernel, just to name a few, rely on Git for version control and code-collaboration.

For coding projects, Git is currently one of the best systems out there. Here are several reasons why Git is a great choice.

Feature Set

Of course, Git’s feature set and philosophy are its biggest value propositions to its users: A great branching model, offline capability, and its "staging area" concept are just some of the prime features that help with the productivity, creativity and efficiency of developers.

Popularity and Staying Power

Being popular and widely available is important for any system. Popularity means there’s a community out there ready to help you get started with the system.

And when you find yourself coding collaboratively, there’s a greater chance your teammates will already know how to use Git.

In addition, being a popular VCS also makes Git attractive for third parties to develop and provide supporting tools and services (e.g. GitHub) that could further enhance your experience with Git.

Popularity also ensures that the Git open source project won’t disappear any time soon — which is an important factor for developers thinking about committing to an open source project for the long-haul.

Official Git website home page (2014).Official Git website home page (2014)

Availability of Quality Educational Materials

It has never been easier to start learning Git. Today, there are tons of documentation, tutorials, videos and how-tos available about the VCS.

Here are a few resources to help you get started with Git.

Why Aren’t You Using Git Yet?

Now over to you: What’s holding you back from using version control with Git? Let us know in the comments!

Related Content

About the Author

Tobias Günther is CEO and founder of fournova. In 2010, he set out to make Git easier to use: Together with his team, he develops the Git desktop client, Tower for Mac.

10 Comments

bin

July 23rd, 2014

what a great article for persons who heard about Git but still not use it (as me). Thank you for your time and very nice clarification in “myths buster” form :)

Can you tell me if a Git as remote service is completely free of charge for “commercial projects”? and what about privacy? Does Git allows on remote private repositories or only public available to everyone?

I know these are very basic questions but I think for you is a moment to answer to them (I have to search and read manual because on Git project webpage is not 100% clear for me)

Thanks in advance, looks like your article makes me another new user of Git ;) btw: great portal, I had yours site in RSS and really like to read your articles.

Jestep

July 23rd, 2014

Something else, you have almost zero chance of landing any decent programming or dev job unless you are proficient in git and probably subversion, although git seems to be rapidly overtaking subversion. 5 years ago it was something that could usually be learned after being hired but it’s pretty much a requirement from anyone I’ve seen in the past 2 or 3 years, even at entry level. I prever subversion, probably because I learned it first, but these are something that every developer must have in their skillset.

naspinski

July 23rd, 2014

So basically this article is about an Source Control system? I don’t see anything here that is Git specific.

Luke Pettway

July 23rd, 2014

I totally agree with this. I am a WordPress developer and I started using Git on everything I do, it has made my life so much easier. I’m also using it with Beanstalk so I can deploy from local to dev automatically, and manually to the Production site.

One of the major benefits is that when I am working on multiple files in different directories, I can upload them all at the same time and when I deploy to the Production, if something goes wrong I can revert the changes back.

If you aren’t using Git you are likely missing out on a lot of time saving capabilities.

Gitster

July 24th, 2014

SourceTree is extremely useful app for people who are not comfortable with command lines. Relatively easy to hop in to this one.

Atlassian SourceTree App – https://www.atlassian.com/software/sourcetree/overview

Vinod

July 24th, 2014

http://www.sourcetreeapp.com/ makes Git very easy & efficient to use.

mikey

July 24th, 2014

Thanks for the list! I am still learning about Git and been looking for a robust tutorial. And yes, Git seems complicated to newbies :)

Chris

July 24th, 2014

Nice, but I have to say. Using git is a no brainier, if I ever talked to someone that did not use a version control this day and age (so easy to setup) or thinks that command line is too hard then use a git client, Github has one and git for windows has one.

Steve

July 25th, 2014

One of the objections I’ve come across is hosting your code in someone else’s network (ie Github). Some organisations, especially government, don’t like the idea of putting potentially sensitive data somewhere they don’t have control over. Procurement rules also make it difficult to just decide to adopt Git.

Bruce Stephens

August 26th, 2014

@bin
git itself is GNU GPL, so entirely free to use, including for commercial purposes. (The license permits copying that would otherwise be forbidden by copyright. For use of the software you’re fine; the license has conditions if you want to make copies.) Services like github may be free or not, and that might depend on what you want to use them for. You can usefully use git without using github.

@Steve
If you don’t want to host code somewhere else, don’t. Run a local daemon (or Gerrit, Gitlab, etc.), and (if needed) expose it in some way for remote workers (likely via the VPN that you’re already using).

Leave a Comment

Subscribe to the comments on this article.