我读过的几乎每一篇文章都比较了Git和Mercurial,似乎Mercurial具有更好的命令行UX,并且每个命令只限于一个主意(与git checkout不同)。

但是在某个时刻,Git突然变得超级流行,并且Debian popcon图上的Git提交者数量激增(请参见下图)。



来源:Debian

2010-01年发生的事情突然发生了变化。看起来GitHub早于2008年成立。

评论

在某个时候,github达到了拐点并起飞。我怀疑它本身就是git。我想知道是否有人可以将gits的流行程度与github的受欢迎程度相关联?

实际上,出于好奇,“提交者数量”代表什么?

您是否对Git的整体流行性或在Debian上安装Git感到好奇?您的数据仅提供有关一个Linux发行版的信息,而忽略了所有其他Linux发行版以及BSD,Mac和Windows操作系统,但是您在询问有关工具使用率上升的一般性问题。根据一些答案,有一个特定于Debian的解释,但是没有足够的数据可以证明Git的流行与Mercurial在所有潜在用户中的流行。提出的问题似乎是基于错误的假设。

Git真的爆炸了吗? Git听起来根本不是一个安全的工具。感谢您的警告。

只是一个问题,但是git在许多其他软件包中使用。看一下apt-cache rdepends git-core和apt-cache rdepends mercurial之间的区别。也许它与git无关,因为它安装了一些其他通用软件包,所以它与git无关。例如,我是etckeeper和ikiwiki的用户,它们都是基于git的(我认为也可以使用mercurial)。我建议您花一些时间,研究一下依赖或推荐git-core的所有内容。

#1 楼

在2009年9月9日之前,软件包“ gnuit”(GNU Interactive Tools,文件浏览器/查看器和进程查看器)在Debian中被称为“ git”,而git被称为“ git-core”。

因此,更好看的图表是:



这表明受欢迎程度并没有显着提高(以绿线表示,直到他们交叉为止,然后走红线)。

评论


看起来在2010/2011年,受欢迎程度急剧上升。它从2010-01年的约1300万次git-core(即Git)安装到了2011-01年的50,000多处(累计git-core和git软件包)。一年内的安装量增加了近4万,比任何其他年度增加量都大得多。

–托马斯·欧文斯♦
2012年11月30日17:08

HN上的某人编辑了该图像,但似乎仍然像@ThomasOwens提到的那样急剧上升。 i.imgur.com/PmYj7.png

–丛林猎人
2012年11月30日17:21

是的,它仍然从线性增长变为指数增长,这非常重要,即使它并不像初次出现时那样突然

–本·布罗卡(Ben Brocka)
2012年11月30日17:48

@BenBrocka实际上不是从线性变为线性系数更高吗? :)而且最终可能将是对数的。

– kreativitea
2012年11月30日20:14



@RussellBorogove:废话。吉布提的生物发光飞行美洲驼的数量呈指数增长,我希望这将永远持续下去。

–机械蜗牛
2012年12月1日在1:32



#2 楼

Debian中的git包以前称为git-core。在2010年4月,该程序包被重命名为git。可以在Julius Plenz的博客文章中或Debian中的commit中找到更多详细信息。

以下图表显示了随时间推移gitgit-core的安装数量:



评论


最好在这里有图表的屏幕截图。如果您愿意,我可以添加它。 :)

–丛林猎人
2012年11月30日在16:59



+1。该图最能说明软件包重命名的过程。

–杰夫·费兰德
2012年11月30日18:57

#3 楼

我将Darcs用于自己的项目已有一段时间。在您的图形所指的快速提升期间,我切换到了git,因此,这是我的观察结果:

大约在那时,分布式源代码控制系统是非常前沿的事情。所谓的Alpha程序员是在侧面使用它们,但是它们不属于大多数专业软件开发人员的关注范围。 CVS / SVN / SourceSafe / TFS看待世界的方式是程序员通常对此或多或少感到满意的一种方式,并且大多数人认为可以通过更好的工具解决产生分布式源代码控制系统的问题。就像从CVS-> SVN获得改进一样,总有一天会允许您使用SVN-> SVN ++。您还将如何管理源代码控制?

然后是git。迫使git出现在每个人的视野中的是,有一个巨大的公共项目立即采用了它。 Git免费提供了许多用户-如果您要进行严重的内核黑客攻击,则可以使用git。虽然我不能百分百确定,但我敢保证当时没有其他DVCS拥有如此庞大的用户群。

然后它起作用了。运行良好。它在公共场合运行良好。对于最初的缺陷,它比当时大多数并发的DVCS更稳定。例如,Darcs可能会陷入不一致的状态,从而需要修复一个荒谬的复杂(二次方?阶乘?无法确定,但很糟糕)实用程序。 Git一直都比较稳定。

庞大的用户群使它显得有些失落。

每个项目,无论是商业项目还是开源项目,都需要大量的资源。 Darcs没明白。水星也没有。回想。许多较小的项目都在使用它。甚至可能有许多商业用户。但是您最大的成功案例是什么?

“如果对Linux内核足够好,对您也足够好”是一个非常令人信服的论点。

因此,总而言之,这是一个很好的产品,适时问世,并拥有庞大的专用用户群。

评论


我认为git和hg都始于2005年左右,到2010年它们已经使用了5年。我不会将它们称为主流,但是我也不认为前沿技术是正确的。

–R0MANARMY
2012年11月30日16:08

那如何回答所问的问题?如屏幕截图所示,“ 2010-01发生的事情突然发生了变化”

– gna
2012年11月30日在16:11



@gnat这是我指的出血/临界质量阶段。

–迈克尔
2012年11月30日16:18

以我所见的方式@Michael,您的回答就不那么详细了。尽一切应有的尊重,现在的措辞看起来更像是一个疯狂的猜测,一个黑暗的镜头。 “那是在2010年1月,当时我感觉快要来了,空气中有些东西……”

– gna
2012年11月30日在16:31



更好的工具已解决了产生分布式源代码管理的问题。如今的SVN远比DVCS人们似乎认为仍旧的旧版本好,并且它解决了旧模型的固有问题,而没有引入DVCS带来的所有新麻烦和额外复杂性。

–梅森·惠勒
2012年11月30日18:50

#4 楼

我是后来者,在2010年左右从Mercurial转到Git。

我之所以相信Git如此受欢迎的原因是因为GitHub之类的网站使您在版本控制工具中产生了网络效应。以前从未见过这种情况,因为您将在项目或公司的基础上共享代码。

这是一种网络效应。

GitHub是基于DVCS的最受欢迎的基于Web的协作层,Git最终成为'够好了'。 Mercurial当然更易于学习和使用,Git有许多细微差别,但是由于Linus而拥有一个坚实的品牌。不负责如果您查看社交网络和Facebook等其他领域的竞争性增长图表,则该直线非常相似。

没有病毒环/网络效应,您不会看到像这样的增长图表。

例如与Facebook的增长图表进行比较



更新:我知道上面的信息可能并不准确,但是有大量数据表明Git已经在过去几年中呈指数增长。

图1:招聘广告中提及Git的情况



Eclipse调查显示,Git市场份额从2011年的13%下降到到2012年达到27%。惊人的增长。

这个帖子比我在这里所做的更好地解释了Git的增长和网络效应。

评论


指数增长(如我们在facebook图上看到的)与问题所包含的原始图之间存在很大差异。如果可以相信该图,则在特定点的斜率会出现戏剧性的不连续性-这意味着发生了某些事件,而不是网络效应。确实,从其他答案看来,此事件是程序包被重命名了! :)

–凝视着
2012年11月30日17:25

该图表可能是错误的,但是还有其他调查表明Git的增长呈指数级增长。例如。这篇文章中讨论的Eclipse Survey(提出的观点与我的观点相同,但要好得多):jamesmckay.net/2012/06/…

– nikcub
2012年12月1日下午6:46



mckay链接已损坏。这是Wayback Machine版本。

– Faheem Mitha
13年8月17日14:56

#5 楼

为了清楚起见,此图显示了git在debian系统上的安装。

在高峰期,Debian软件包从git-core重命名为git。也许人们发现该软件包更容易了,因为该名称反映了该软件。

#6 楼

令我惊讶的是,没有人提到Github是Git获得流行的最大原因之一。他们推动git成为主流。

Github于2008年4月推出,并在1-2年内获得了普及。然后,当您看到git / git-core用途突然激增时,主要是由于200万github用户及其370万存储库引起的。 Github使git易于使用。 Bitbucket在那里,但是github毫不费力。我敢肯定,如果github伙计们选择了Hg代替git,我们应该会看到Hg的使用量激增。

分析可以是:Canonical:Linux :: Github:Git

评论


我绝对同意Github使修订控制变得有趣,易于理解,并且在所有这些开放源代码存储库中都非常有用。在我看来,它们是Git变得如此庞大的原因。

– d34n5
2014年7月22日15:41

#7 楼

好吧,恕我直言,像Hg和Git这样的分布式VCS本质上比集中式VCS好-因此SVN总是会输给其中的一个。

和git(正如已经观察到的),与汞相比,Hg具有巨大的优势,它是地球上最大,最成功的开源项目所使用的-从一开始就令人难以置信。

2010年初,我的猜测相当平淡。 Git很棒,但是对于初学者来说并不是很直观。

最好的Git书籍,恕我直言,是Pro Git,它于2009年9月出版。第二好的(再次是IMHO),O' Reilly的Git书于2009年6月出版。

因此,Git使用率在2010年初激增的原因可能很简单,因为那时才有了真正好的学习使用方法的资源。

评论


当涉及分支和合并时,SVN从来不是领先的集中式VCS。 Hg和Git是第一个很好地应对分支和合并的开源VCS。我认为集中式/分布式与它无关。

–伊恩
2014年11月13日13:58



#8 楼

选择版本控制系统是一项社会决策。团队都需要使用相同的解决方案。与文本编辑器(这是个人决定)相反,不同的开发人员可以使用不同的编辑器并轻松协作。

因此,选择版本控制系统会对网络产生影响,从而导致性能更好或更受欢迎的系统变得更加流行。

例如,对于开放源代码项目,我更喜欢darcs,但是发现我的更多潜在贡献者熟悉git,并且对于使用git而不是darcs托管的项目,我更容易收到更多的贡献。因此,我最终大量使用git而不是darcs。然后,因为我使用了它并在Github上发布了代码,所以我似乎认可或什至更喜欢它,这可能会影响其他人使用它。

开发人员不想学习新的资源他们参与的每个项目的控制系统,因此拥有一个“足够好”且广受欢迎的标准,然后让每个团队和项目在真空中选择“最佳”解决方案,对整个社区都有利。

Github仅增加了网络效应的火力。

#9 楼

查看Michael回答中的更正图表,其中显示了git-core和git在Debian系统上,这似乎是为什么git在2006年开始在Debian系统上变得流行以及为什么它在2006-2012年间呈指数增长。

原因可能是基于Debian的Linux发行版的广泛采用,例如Ubuntu,该发行版在2005-2006年间开始流行,并成为第一大发行版,直到2011年左右,当时基于Debian的Mint成为了发行版。 #1根据DistroWatch,在2012年底,Mint仍然排名第一,而Ubuntu排名第三。根据Wikipedia在2012年末的数据,全世界有250万用户和约450万个项目。

Rails和许多其他项目在2000年代末从Rubyforge迁移到GitHub。此外,Bundler在最初有问题的时间(2009年末)被引入,并支持通过Gemfile中的:git选项安装/更新gem,Bundler被包含为Rails 3的依赖项。 C ++,Java,CSS等也已迁移到GitHub或在GitHub上启动。

想要为GitHub上的项目做出贡献的人需要将项目分叉到GitHub中,请使用本地git客户端来克隆修改之前,将其推回GitHub并进行拉取请求。这比以前使用的其他方法简单得多,并且可以说这是移至GitHub或决定从此处开始的项目所采用的重要原因。这意味着需要在基于Debian的发行版中安装git-core / git,以便开发人员可以使用GitHub。

因此,我相信这是基于Debian的发行版的结合,变得越来越流行,并且由于GitHub在用户和项目方面的增长,使得git的采用率不断增长,这很可能源于GitHub的免费托管和用户体验。

#10 楼

我认为很多人都将因果关系与因果关系弄混了。

所提供的图表均显示了gits流行度与事件...与其他度量之间的相关性。但是,相关性并没有明确的因果关系。

其他一些答案试图与其他事物建立关系。例如利纳斯·托斯瓦尔兹(Linus Torsvalds)为DVCS传播福音,建立了Github,并兴起了社交网络。尽管有证据表明相关性(在时间轴上)不那么强,但这并不排除因果关系。特别是如果您接受“网络效应”假设;即存在多种原因。
最重要的是,可用的证据不能显示因果关系。我们谈论的是成千上万的人的集体行为,人们出于不同原因做出决定……或者根本没有逻辑原因。程序员与其他人没有什么不同。