我已经在Windows上使用git有一段时间了(使用msysGit),我喜欢分布式源代码控制的想法。就在最近,我一直在关注Mercurial (hg),它看起来很有趣。然而,我无法理解hg和git之间的区别。

有人把git和hg放在一起比较吗?我很想知道hg和git有什么不同,而不需要加入粉丝的讨论。


当前回答

没什么。他们都做同样的事,都表现得差不多。你应该选择其中一个而不是另一个的唯一原因是,如果你帮助一个已经使用其中一个的项目。

选择一个系统的另一个可能的原因是应用程序或服务只支持其中一个系统。例如,我选择学习git是因为github..

其他回答

还有谷歌的对比(虽然有点老,是2008年做的)

http://code.google.com/p/support/wiki/DVCSAnalysis

这个链接可以帮助你理解其中的区别 http://www.techtatva.com/2010/09/git-mercurial-and-bazaar-a-comparison/

去年的某个时候,我评估了git和hg供我自己使用,并决定使用hg。我觉得它看起来是一个更干净的解决方案,并且在更多的平台上工作得更好。不过,这基本上是一个未知数。

最近,我开始使用git,因为git-svn和充当Subversion客户端的能力。这征服了我,现在我完全换成了git。我认为它的学习曲线略高(特别是当你需要探究内部时),但它确实是一个很棒的系统。我要去读约翰发表的那两篇比较文章。

mercurial网站对这两个系统的异同进行了很好的描述,解释了词汇和基本概念的差异。作为一个长期的git用户,它确实帮助我理解Mercurial的心态。

git和mercurial之间有一个巨大的区别;表示每次提交的方式。Git将提交表示为快照,而mercurial将它们表示为差异。

这在实践中意味着什么?在git中,很多操作都更快,比如切换到另一个提交,比较提交等等。特别是当这些提交距离很远的时候。

说真的,mercurial的方法没有任何优势。