我已经使用过Windows上的Git (msysGit) 一段时间了,并且我喜欢分布式源代码控制的理念。最近,我开始看Mercurial (hg),它看起来很有趣。然而,我无法理解hg和git之间的区别。
是否有人进行过git和hg的对比?我想知道hg和git之间的区别,而不必卷入支持者讨论。
我已经使用过Windows上的Git (msysGit) 一段时间了,并且我喜欢分布式源代码控制的理念。最近,我开始看Mercurial (hg),它看起来很有趣。然而,我无法理解hg和git之间的区别。
是否有人进行过git和hg的对比?我想知道hg和git之间的区别,而不必卷入支持者讨论。
Mercurial官网很好地描述了这两个系统之间的相似之处和不同之处,并解释了词汇和基本概念上的区别。作为长期使用git的用户,这确实帮助我理解Mercurial的思维方式。
这个链接可能会帮助你理解它们之间的区别:http://www.techtatva.com/2010/09/git-mercurial-and-bazaar-a-comparison/
有些人认为版本控制系统必须很复杂。他们鼓励在领域内发明术语和概念。他们可能会认为,该领域的众多博士学位是有趣的。其中可能包括设计Git的那些人。
Mercurial采用了不同的心态设计。开发人员不应太关注版本控制系统,而应该把时间花在主要功能上:软件工程。Mercurial允许用户使用并愉快地滥用系统,而不会让他们犯下任何不可恢复的错误。
任何专业工具都必须配备一个清晰设计且直观的CLI。Mercurial用户可以通过发出简单的命令完成大部分工作,而无需任何奇怪的选项。在Git中,双破折号和疯狂的选项是常态。如果您是CLI人员(老实说,任何自重的软件工程师都应该是),则Mercurial具有显着优势。
举个例子,假设您因失误提交了一项任务。您忘记编辑某些文件。在Mercurial中撤消操作很简单,只需键入:
$ hg rollback
然后您会收到一条消息,系统会撤消您的最后一笔交易。
在Git中,您必须键入:
$ git reset --soft HEAD^
好的,假设你已经知道了重置是什么。但是除此之外,你还需要知道"--soft"和"--hard"重置是什么(有直觉猜测吗?)。哦,当然别忘了最后的'^'字符!(现在里奇的名字是什么...)
Mercurial与kdiff3和meld等第三方工具的集成也更好。生成补丁,合并分支都不会太麻烦。Mercurial还包括一个简单的http服务器,您只需键入
hg serve
就可以让其他人浏览您的存储库。
总之,Git以一种更复杂、CLI远不如的方式实现了Mercurial所做的事情。如果您想将项目的版本控制系统变成科学研究领域,请使用Git。如果您想完成版本控制系统的工作而不太关心它,并专注于您的真正任务,请使用Mercurial。