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

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


当前回答

在bitbucket.org的mercurial和github的git之间需要注意的一件事是,mercurial可以有尽可能多的私人存储库,但github你必须升级到付费帐户。所以,这就是为什么我选择使用mercurial的bitbucket。

其他回答

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

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

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

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

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

我意识到这不是答案的一部分,但在这一点上,我也认为像NetBeans和Eclipse这样的平台的稳定插件的可用性在某种程度上决定了哪种工具更适合这项任务,或者更确切地说,哪种工具最适合“你”。也就是说,除非你真的想用cli方法。

Eclipse(以及基于它的一切)和NetBeans有时在远程文件系统(如SSH)和文件的外部更新方面都有问题;这也是为什么你希望你选择的任何东西都能“无缝”工作的另一个原因。

我现在也在为自己回答这个问题。我已经把候选人归结为Git或Mercurial ..感谢大家在没有宗教色彩的情况下就这个话题提供有用的意见。

如果您对Mercurial和Git的性能比较感兴趣,请参阅本文。结论是:

Git和Mercurial都取得了不错的成绩,但在速度和存储库大小之间进行了有趣的权衡。Mercurial在添加和修改方面都非常快速,同时还能控制存储库的增长。Git也很快,但它的存储库在修改文件后增长非常快,直到重新打包——而这些重新打包可能非常慢。但是打包的存储库比Mercurial的要小得多。