8 ms·
Why did Git become so popular?
- fbuilesv 14y agoI think the current answer fails to mention two important things: 1. GitHub. 2. Linus himself wrote it (the kernel previously used BitKeeper but that never got any real traction AFAIK). Having said that, I think this phrase totally nails it: "If it's good enough for the Linux kernel, it's good enough for you" is a very convincing argument.
- debacle 14y agoOr, from another perspective, "Linux uses it, so we should too!"
- jamesdterry 14y agoNo one ever got fired for going with Linus ;-)
- ashishgandhi 14y agoGitHub was founded in 2008. The spike is in 2010-01. That's what the question mentions too.
- shantanubala 14y agoI'd argue that GitHub became really good 2010-01. It takes a certain number of early adopters to group together before the social features finally become useful for everyone.
- wyuenho 14y agoThat also happened to be the time when people REALLY wanted to use DVCS but Google Code lacks private repo ability and BitBucket was also getting really unstable. BitBucket was far more stable than Github the years prior to 2010. Mercurial also had a whole lot more GUIs to choose from and worked great on Windows. For the longest time Github just wouldn't send a tar ball when you clicked the download button. And then around 2010, BitBucket was doing a lot of stuff behind the scene and the service was down a lot. A lot of basic features just wouldn't work. They were probably getting ready to sell to Atlassian. I think that's the main #1 reason Git and Github took off. Another one is Linus' diatribe on SVN. That video on youtube's been viewed millions of times. The video really got the Linux fanboys jumping around all excited even though its command line interface sucks and didn't work quite well on Windows.
- slashdotdash 14y ago> Just to make clear, this graph show the installation of git on debian systems. Around the time the spike happens the Debian package was renamed from git-core to git. Maybe people found the package easier now that the name reflected the software. http://programmers.stackexchange.com/a/177892 http://programmers.stackexchange.com/a/177892
- nikcub 14y agothat is what network effects look like for eg. it is comparable to the chart of Facebook growth[0] [0] http://www.nathaninfocus.com/wp-content/uploads/2011/01/Facebook-Growth-Chart.jpg http://www.nathaninfocus.com/wp-content/uploads/2011/01/Face...
- garenp 14y agoBefore that time, git lacked http support, which means a large population behind firewalls couldn't use it. From memory, that happened sometime in December 2009, which correlates very closely with that graph.
- halefx 14y agoActually the spike is in 2010-04. I don't know that it's really related, but Drupal began switching from CVS to Git in 2010-03. I know a lot of people (myself included) looked at Git for the first time because of that.
- pdw 14y agoI wonder how big a factor Windows is. I remember that in 200x several projects (e.g. Mozilla and Java) chose Mercurial over Git because of Git's poor Windows support. At which point did Git become usable on Windows?
- _ikke_ 14y agoMy first encounter with git was in about 2009 on windows, and I don't recall it being unusable.
- enobrev 14y agoAs a single data point, I chose git due to github around late 2010 and consequently moved a couple of my clients (and current employer) over to git/hub. I personally still prefer bzr's cli.
- silverbax88 14y agoHaving used ClearCase, CVS, Subversion, TFS, Git and Mercurial, I would have to say it's because not enough people have tried Mercurial. I have no interest in Git, but I think people like GitHub (or maybe don't know about BitBucket)
- debacle 14y agoWhich tool do you prefer the most?
- Tloewald 14y agoWe assume ClearCase is the worst, right?
- igrekel 14y agoAssuming too much... People who conplain loudly about ClearCase most often never understood how it is supposed to work. Ok ok, you need an army of administrators to make it work but still far from being the worst. Sourcesafe?
- raverbashing 14y ago"most often never understood how it is supposed to work" This is a BS argument. Yes, everybody got it wrong, Git is wrong, SVN is wrong, it's CCs broken model that's correct. " you need an army of administrators to make it work" Yes, let's sink an awful amount of money in a half-baked software that needs all kinds of 'helpers' to work properly. Personally I won't work in a company that uses CC anymore, and it's been only bliss since then. Sourcesafe is bad, but it's a different kind of bad. And it makes even CC look good.
- Tloewald 14y agoI don't have any experience of knowledge of Sourcesafe, but it wasn't in the original list ;-)
- silverbax88 14y ago
- _jb 14y agoI don't know when that was, but at some point the rails (sexy) community pushed for git. That sure helped. Edit: no pun intended ;)
- lylejohnson 14y agoI agree that the Rails halo effect probably had a lot to do with it. That's certainly where I first heard about it.
- cheald 14y agoRails moved to Git in 2008, so I don't think that's it.
- secure 14y agocross-posting my answer here: The package "gnuit" (GNU Interactive Tools, a file browser/viewer and process viewer) was called "git" in Debian up until 2009-09-09, while git was called "git-core". Therefore, a better graph to look at is: http://qa.debian.org/popcon-png.php?packages=git-core%20git&show_installed=on&want_legend=on&want_ticks=on&date_fmt=%25Y-%25m&beenhere=1 http://qa.debian.org/popcon-png.php?packages=git-core%20git&... Which shows that the popularity did not rise dramatically (take the green line for the left part until they cross, then take the red line).
- calinet6 14y agoNot as instant, but still exponential. That's an interesting factoid, but I think the intent of the question remains valid.
- pseut 14y ago> Which shows that the popularity did not rise dramatically (take the green line for the left part until they cross, then take the red line). It's less dramatic, but it does look like there's a pretty substantial increase that can probably be attributed to "using an easier to discover package name." Out of (genuine) curiosity, does the graph include Ubuntu users?
- secure 14y agoThe graph does not contain Ubuntu users. Ubuntu also uses popularity contest, but with a separate database from Debian. The number of popcon submissions in Ubuntu is one order of magnitude higher than the number of popcon submissions in Debian. Unfortunately, I cannot find out whether Ubuntu makes the graphs publically accessible like Debian does.
- dbaupp 14y agoWith a bit of image editing: http://i.imgur.com/PmYj7.png http://i.imgur.com/PmYj7.png It does look like something happened that caused a spike in popularity.
- darkxanthos 14y ago
- rjzzleep 14y agoam i the only who's thinking it is a nice real world solution to a real world problem?
- npsimons 14y agoNo, that's precisely the feeling I get every time I see an article/comment/blog post saying something along the lines of "why is git winning? Mercurial is superior because it's easier to use, won't let you change history, and it's written in Python!"
- calinet6 14y agoA classic case of critical mass. Linus started git, then Github made it social, then everyone started using git, so you did too. Think of it exactly like an atomic bomb. Atomic bombs are simple: you need fissile material that decays and emits neutrons, and you need it to get close enough to keep a reaction going. The fissile material in this case is the quality of the software. If it's good, consider it fissile. If it sucks, it probably ain't exploding anytime soon. Git is good. It works, it's fun to use, and it's collaborative. The trigger was Linux. A large developer community suddenly was introduced to it, and used it day-to-day as Linus was still developing Git itself. The bomb had dropped. Github was the mechanism itself. It brought all of the developers closer together (like neutrons) and the reaction started spreading. The quality of the experience ensured people actually wanted to be there, and to share it. Critical mass of ~the social web~ anything in society. 1. Quality, 2. Trigger, 3. Social Mechanism. Boom.
- camus 14y agobecause git is easy , git is distributed , and github is fancy. My designer team use git yet they cant program. They learned basic git in 4 hours. SVN is much more complicated to work with and to learn for non developers. Mercurial is cool too ,but since most of the library we use are on github my organisation push on github ( and bitbucket ).
- lifeguard 14y agoBecause hackers said bitkeeper sucked.
- tubbo 14y agoBecause Larry McVoy is a money-grubbing prick who dug his own fucking grave?
- jiggy2011 14y agoI wonder how much of the time git is in practice used identically to SVN?
- jlgreco 14y agoEven used like that, there are clear advantages to using git to preform that model rather than SVN. To really get the proper "just like SVN" experience you would have to find a way to make git suck at branches and merging, at the least.
- graywh 14y agoAnd then make add-commit-push a single operation.
- jiggy2011 14y agoI never found actually doing branches and merges in SVN any more difficult than git, not sure what the big differences are? OTOH not having to do the merges on the shared repo is much better and avoids the "don't checkout HEAD just yet 'cos it's all manor of fucked up right now" problem.
- jlgreco 14y agoIt is obviously a hard thing to quantify, but relative pain of branching and merging is apparent through the different version control styles commonly advocated/actually seen for both systems. As a simple example, while this (http://nvie.com/posts/a-successful-git-branching-model/ http://nvie.com/posts/a-successful-git-branching-model/) is certainly possible in SVN, I have never actually seen an SVN shop consistently doing that. To the extent that any I have seen do follow that model, they do so essentially at gunpoint, not because it is a pleasant thing to do. On the other hand that sort of thing is exceedingly simple and pleasant in git. As a consequence, in the real world, people are much more willing to employ both with git without any hesitation at all. Also poorly quantifiable is the sense of fear or anticipation that courses through your veins when you hear the phrase, in an SVN shop, "Hey, I've got a feature branch I want to merge in."
- 14y ago
- wmitty 14y agoA network effect applies to revision control systems. Mercurial is a much better fit for how my mind works than Git (I feel that Git is from the school that thrives despite complexity, where I prefer the school that puts lots of effort into a really clean model to minimize complexity). But I am now giving up on Mercurial: every open source project I play with is on github, so I absolutely need to master Git - and I don't want to keep using two systems. The network effect wins.
- Too 14y agoI think the data source is a bit flawed - "Nr of packages installed on debian" I would say mercurial is more polished on windows, taking tortoisehg into account. Maybe most mercurial users are on windows while most git users are on linux? (now i don't believe that mercurial actually is bigger than git, even on windows, but the data from the post is still dodgy) The "Linux uses git!"-argument is a good one but mercurial has an almost as good one: Firefox. So i don't think that would be an overwhelming factor.
- mcantelon 14y agoA blog post from 2010: http://blog.extracheese.org/2010/05/why-i-switched-to-git-from-mercurial.html http://blog.extracheese.org/2010/05/why-i-switched-to-git-fr... Concludes that Git handles larger amounts of data more efficiently and stores revision info in a safer/clearer way. Git might be more arcane in terms of it's command syntax, but gets the job done.
- ewood 14y agoI worked at a company where we migrated from CVS to Mercurial in 2009 and then to Git a year later. I would say that the general move to distributed source control away from CVS/SVN style centralised systems picked up steam from 09 onwards, and for us Mercurial won over Git initially because it had better Windows support. While I loved Mercurial's more simple command syntax, moving to Git was a no-brainer after we'd been bitten by Mercurial's poor handling of large binary files and Msysgit had improved the Windows support situation. This blog post (http://blog.extracheese.org/2010/05/why-i-switched-to-git-from-mercurial.html http://blog.extracheese.org/2010/05/why-i-switched-to-git-fr...) from 2010 would seem to suggest that others had a similar experience.
- cllns 14y ago"Git... literally exploded." :)
- deleted 14y ago[deleted]
- npsimons 14y agoI think the question betrays the authors bias and assumes too much; by claiming that "almost every article comparing mercurial and git" and saying "it seems like Mercurial has a better command line UX", the author is obviously a fan of Mercurial; neither of those points seem to be true. While I can understand the sour grapes at seeing an "inferior" technology win, it's not that clear cut. I haven't used Mercurial enough to really compare, but I can say that most of the supposed "advantages" of Mercurial versus Git seem moot to me. The CLI "UX" differences are negligible, it doesn't matter what languages they are written in, and git is ultimately more flexible due to less dogmatism. Perhaps the question should be closed with an "already answered" link to this: http://stackoverflow.com/questions/1598759/git-and-mercurial-compare-and-contrast http://stackoverflow.com/questions/1598759/git-and-mercurial... Edit: Followup with some more links: http://schacon.github.com/2008/11/24/on-mercurial.html http://schacon.github.com/2008/11/24/on-mercurial.html http://tomayko.com/writings/the-thing-about-git http://tomayko.com/writings/the-thing-about-git http://blogs.atlassian.com/2012/03/git-vs-mercurial-why-git/ http://blogs.atlassian.com/2012/03/git-vs-mercurial-why-git/
- wyuenho 14y agoYou said you haven't used Mercurial much to really compare, and then you compared, and said git is more flexible, and the CLI difference are negligible. So I think you definitely have a bias towards git. I use Mercurial and Git every day, and I can tell you there's a marked difference between the usability of Mercurial and Git. Git would become totally unusable if it weren't for stackoverflow and google, while I can figure everything out just from Mercurial's short and sweet help manuals.
- ngyt 14y agoBecause github is backed by $100+ million of venture capital and they have been virally marketing their tool.
- tubbo 14y agoIt's not the tool, it's the platform. GitHub is a better platform than Bitbucket, in almost every way.
- programminggeek 14y agoBecause it's awesome? I personally started using git because github made setting up hosted version control so darned easy and nice. Also, I hated using SVN from my work life experience, so I knew I didn't want to use that on my own projects. Once I understood the power of git branching there is no way I could ever go back. Also, I tried mercurial and it always felt slower and "worse". Git commands might be cryptic, but it's always felt faster and had a community around it that makes better tools for it.
- wiremine 14y agoI remember attending an OSCON session on git vs. Subversion back in 2006 or 2007. The presenter's thesis was basically that git was more efficient than subversion when it came to branching. Near the end he walked through the distributed nature of git. That was the second of third OSCON I attended, and I have never seen, nor have I seen since, that many utterly confused developers in a single room. At the time I thought it was just a poor presentation. With the benefit of hindsight, I've realized the presentation was just fine. We, the developers, just had that much baggage from using CSV and Subversion. "What do you mean forking isn't evil!" "What do you mean you can branch like that?" It feels like, at some point, there was a tipping point of younger developers who didn't have to unlearn subversion. Makes me wonder what other heresies we'll do a 180 degree turn on in the future...
- freework 14y agoHopefully, test driven development will be one of them. I don't know what will replace it, but some day we'll look back and say "I can'r believe we used to spend so much time writing so many tests"
- npsimons 14y agoIf you don't test it, how do you know it works?
- wiremine 14y agoMaybe, but the we'd need incredibly better tools than what we have today. Git was a vastly better tool, which enabled us to reshape the culture around how we managed code. Test-driven development is a culture that lacks git-level tools.
- cdibona 14y agoThe uptick in 2010 has a lot to do with the introduction of git over http solidifying and I firmly believe that android's use of git, which is extensive and that reliance on git coupled with the rise of the platform pulled an incredible number of developers onto Git and over the learning hump. If you can find the 'open source updates' from oscon on youtube/oreilly, Shawn Pearce gives an architectural update that will inform your speculations.
- drue 14y agoPopularity begets popularity. I evaluated a ClearCase replacement in early 2012 for a large company, and Git is clearly the "nobody ever got fired for buying IBM" SCM. I looked at hg. It is easier, especially for the windows users. However, git was already coming from a few different directions and hg's simplicity was not enough to tip the scale. We are now mid-migration. If git devs are listening - this is my biggest nit: $ apropos git | grep ^git | wc -l 159 I do believe an alternative "porcelain" will eventually supplant the core git commands, making it more user friendly.
- robodale 14y agoShut up about the tools you use and write some damn code. http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/ http://importantshock.wordpress.com/2008/08/07/git-vs-mercur...
- alwillis 14y agoI like this one better: Git is Wesley Snipes, Mercurial is Denzel Washington: http://www.ericsink.com/entries/hg_denzel.html http://www.ericsink.com/entries/hg_denzel.html