bartman's blog

Why pick Git?

bartman
Table of Contents

Someone on the Git LinkedIn group asked “why pick Git?”. I started writing a response on LinkedIn but quickly realized I had more to say on the topic than I’d care to leave behind closed doors of LinkedIn.

If you already use Git, none of the stuff I talk about below will surprise you. But if this sparks your interest see my Git talk.

Why distributed? #

Git is distributed which brings a lot to the table. Particularly, I see four major wins with distributed revision control (like Git) over centralized revision control (like svn):

Why not centralized? #

It’s worth while to dispel the so called benefit of centralized development. I often hear concerns that distributed makes it easy for developers to horde their work. This is particularly scary in the corporate setting. Years of interaction with other developers have taught me that the revision control tool does not solve this phenomenon of hoarding, and I believe that centralized development can actually make it worse.

Before revision control systems became distributed people that liked to hoard their work (or just didn’t or couldn’t work on a public branch) would develop in their working copies for weeks, polishing their changes, and then finally committing their work. Because they were not (all) careless individuals, they would often keep multiple complete copies of their work as they progressed through stages; these snapshots ware essentially revisions of their work. Distributed revision control systems gives these people the ability to commit their work to a private repository.

It is true that some centralized systems can be setup to allow any user to create a branch. However, this usually leads to a very messy branch namespace. Being distributed means that the private branches, that developers create for their own purposes, do not have to pollute the namsepace on the shared server.

Why Git? #

There are many distribute revision control systems, why pick Git?

A list like this can never be complete, but hopefully it gives you something to think about when choosing your revision control system.

Tags: