Hacker News new | ask | show | jobs
by kunqiana 5318 days ago
I have a question, why did git grow so popular? What was better about it?

Edit: To down voters I think this question is important because it helps us understand why certain softwares are successful despite other successful competitors. I am not trying to start a flame war on which version control system is better.

6 comments

This is an interesting question. I'd say it's a mix of technical and social factors. Technically it's a solid abstraction (versioned directories), it's ridiculously fast (specially when compared to most alternatives at the time, even local ones), and somewhat space efficient (if you're not keeping binaries around). Because the format has been specified from the beginning it's easy to build all sorts of tools on top of it and add as much knowledge as you want, including line-by-line diffs, rename tracking, etc. It also ignores some hard problems people were focusing on at the time (merges, for example).

Socially, it first had a big userbase because the kernel is a large enough project and the switch was made top-down as far as I remember (not everybody was forced to do it but it was much easier if you could). This means a lot of people had to get acquainted with it, and this set of people turned out to be somewhat competent at changing it to make it faster, more stable, and easier to use (up to a point). Linus's personality played an important role here, as he entertainingly made a case for why it was good, which created a certain "cool factor". Second, there was the github factor which allowed this user base to explode exponentially by making it really cheap and easy to use.

Some ideas:

1. By being "stupid", git doesn't treat the user as stupid.

2. git allows repositories to be uploaded or transferred anywhere for others to use with a single, simple command.

3. git is efficient and fast. No one likes waiting for their computer to do a seemingly easy task -- especially software developers/hackers who know something should be O(1) complexity and could be written in X lines of code.

4. Merging/branching is easy.

I have a question, why did git grow so popular?

1. Celebrity nerd Torvalds creates a vcs. It is not terrible.

2. Linux development moves to git.

3. Rails development moves to git.

4. Github.

People are probably downvoting you because it's totally off-topic, in addition to be a really well-worn question. This is something you can easily Google and get hundreds of answers for.

That said, the answer IMO seems to have something to do with the fact that some very important communities ready for a different VCS model, and some very good and influential developers answered that call at roughly the right time. For example, both Mercurial and Git were started in direct response to the Linux Kernel having their bitkeeper license revoked.

Github is really a killer app for git, and that's probably one reason it's gotten as popular as it has.

I think it is a legitimate question.

I picked up git because I know I needed to use SOMETHING for version control. Looking around a few years back I saw CVS, SVN, and the rest.

So I Google/ask around. I see that git is getting mentioned pretty regularly. I also see Hg being mentioned. I basically search for free hosting for both. Github just seemed more friendly. The UI was bigger and easier to read than bitbucket. So I just went with git.

Often it is the stupid reasons that people adopt something: it looks nicer, my friends are using it, I can pronounce the name.

GitHub may be one reason.

Maybe less but still important IMHO is that it's far more pronounceable than e.g. SVN. That could help build the hype.

I remember when I was first introduced to version control - I was told "we're using 'subversion' for XYZ". I thought that meant we were doing something sneaky that I shouldn't talk about.

"Git" is definitely a nice name.

I have no idea where urbandictionary.com is from, but its page on `git' describes the meanings it's always had for me, and indeed probably most UK (and Australian?) readers:

http://www.urbandictionary.com/define.php?term=git

This is partly why I have, so far, not joined the "Git Hub".

All in all, I think a better name could have been chosen. But, most of the time, I only type it - and it IS certainly nicer to type than `svn', I'll give it that.