我目前使用Git,并且总体上对它感到满意,但我想了解更多关于Mercurial的信息。它是否比Git更具有优势?Git相对于Mercurial的优势是什么?
我知道已经有两者之间的详细比较,但这不是我所要求的。我不想要客观的信息,而是希望得到充满激情(但要有礼貌!)的理由,让你认为其中一个更好/更容易/更快/更聪明/更强等等。
我目前使用Git,并且总体上对它感到满意,但我想了解更多关于Mercurial的信息。它是否比Git更具有优势?Git相对于Mercurial的优势是什么?
我知道已经有两者之间的详细比较,但这不是我所要求的。我不想要客观的信息,而是希望得到充满激情(但要有礼貌!)的理由,让你认为其中一个更好/更容易/更快/更聪明/更强等等。
我曾经使用过Mercurial和Git,但我更喜欢hg而不是git;它只是感觉更好。Steve Losh在他的博客文章Mercurial和Git之间的真正区别中总结了我的大部分感受。以下是一些我完全同意的引用:
我认为仍然有一个非常非常重要的区别:系统的使用感觉非常不同。
我个人认为Mercurial的理念更易于使用。当命令更加模块化而不是单一时,我更容易理解。
我个人不喜欢索引。我觉得git鼓励人们提交未经测试(甚至未构建)的代码更改集,因为索引在git工作流程中是如此突出。
(A) 我选择使用 Git 而不是 Mercurial 的前三个真实原因:
(B) 基于上述原因,我喜欢 Git 胜过 Mercurial 的三个方面:
(C) Mercurial 相对于 Git 具有以下三个优势:
我认为 (B) 中列出的所有(大部分?)项目要么是我习惯于 Git 模型的结果,要么可以通过插件在 Mercurial 中“修复”。但事实仍然存在,即 Git 开箱即用,符合我的预期,而我可以不关心任何 (C) 的项目 [考虑到出色的 ProGit 书籍,C(1) 不再是问题]。因此,我继续使用 Git 而不是 Mercurial。
我使用Mercurial的主要原因是:
否则,就版本控制操作本身而言,它们基本相同。
(编辑说明:为了澄清 - 我并不是说Mercurial优于Git - 据我了解,在一般用法中Git比Mercurial更快速,而且我实际上没有使用过足够多的Git来发表评论。但这两个原因是我使用Mercurial而不是Git的原因)
为什么我更喜欢Mercurial而不是Git。
[再次是个人的热情和偏见]
Mercurial的命令真正只是Git可用命令的子集,看起来非常充足。任何额外的东西,感觉都有点过度放纵。
通过Wayback Machine访问gitvsmercurial.com
自从写下这个答案以来,我主要使用git,主要是因为GitHub。我在工作中也开始使用Subversion。但我宁愿不使用Subversion。
同样的事情,换汤不换药。我从Mercurial转向Git是因为团队中另外一个人更喜欢它。然而,我认为他之所以更喜欢它只是因为他先学会了它。
我喜欢使用Git,因为:
并不是因为有网络效应就意味着营销决定了一切。Git的工具集是生成性的和非常高效的(它被用于许多备份、归档和数据完整性方面);Hg的扩展必须是生成性的,但更多地是在UI增强方面。Git开创了一些有用的标准,比如快速导入。我认为这就是它吸引了更多的系统构建者类型,他们既能改进git、完善它,又能将自己的东西放入git。
--pager
(或者留给 |less
),而不是 --no-pager
。通常情况下,我并不需要分页器。对于可执行文件来说,使用分页器并不是一种正常的做法。 - Chris Morganhg log
会清除屏幕,只留下最旧的修订版本。而git log
则会显示最近的修订版本,并允许我进行导航。一个处理常见用例,而另一个则不是。至于传统方面:man
命令是否异常? - Tobu