GIT, Does a solo dev need it?

Over the past few months I have seen many posts on stackexchange and questions asked in IRC about whether a solo developer REALLY needs to use a version control system. The beauty of VCS systems really begins to shine when in a multiple developer environment where you need to have an easy way to merge code, have a log of all changes, and a way to manage versions in branches. I think part of the reason for the recent questions is because of the popularity of GIT, a distributed version control system. People see the distributed in the description and assume is should only be used by remote developer which isn’t the case at all.

There seems to be a common misconception that a solo developer doesn’t also have these same needs. Although on a much smaller scale, the problems listed above are all present for the lone developer that wants an easy way to organize their code. A solo developer still needs to have a log of changes made to file as well as folder structures with the ability to rollback and revert changes if needed. They also need to be able to merge code with revisions he is making in different branches. Which will then lead to needing to manage versions throughout the development lifecycle of the product.

The best reason to use version control, even as a lone dev, is because it is so damn easy. In Windows there are great installers that provide both GUI and bash support and provide the git command to the PATH=. In linux it is as simple as running the follow command in your terminal

To initialize a local repo simply cd into the directory and run
. The second command adds all the files currently in the directory to the repository. You will finally want to run
to make your first commit. The -m tells git that the text that follows in quotes is a message. This allows you to have an easy to see message to for review commits later.

As you work through development on an application you will want to become familiar with branching and checking out branches. This allows you to keep code on its own while in development so you aren’t making changes to the working code while you play around with new features or bug fixes. Branching is very simple but it is a bit more than I want to get into for this post.

Using a VCS is just so easy to use and has so many upsides even for a solo developer that everyone should really be using it. I prefer GIT but there is also SVN, mercurial and CVS, plus many others. Google around and see which one will work best for you and start using it. Not only will it make your workflow much more organized, it also is great to have on a resume if you ever decide to work somewhere on a team of developers.

For a full tutorial on Git and its usage in open source projects LornaJane has a great post on her blog. Do Open Source with Git and Github

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>