Git和Mercurial中的合并操作有什么不同?

5
希望这不是一个含沙射影的问题。我长期使用hg,它完全满足我们的需求。最近我一直在与顾问合作,他一直在强调“管理多个仓库并推送/拉取/合并它们比hg更容易”。更具体地说,我认为他的意思是将更改推送到远程仓库是更容易的部分。由于我对Git不太了解,我不想告诉他两者之间没有太大区别。我印象中,在两个系统中,如果同一文件的多个来源发生更改,推送和拉取几乎总是涉及合并。有人能帮忙澄清他可能的意思吗?他的合同已经结束了,我还没想到让他详细说明他所说的内容。

PS:我已经阅读了这些比较,但它们并没有明确回答我的问题:

重要冲击:Git vs. Mercurial,请放松

摇滚巨星程序员:Mercurial和Git之间的区别

Steve Losh: Mercurial和Git之间的真正区别

2个回答

3
我认为他声明中的关键词是“管理多个仓库并进行推送/拉取/合并更容易”,其中包括“和”。在Git中,创建一堆“命名”远程仓库非常容易,这些远程仓库可以用名称引用。从远程拉取分支并将其保留在您的仓库中也很容易;这些分支基本上是在远程名称下命名空间,因此很容易将远程分支分组等。换句话说,跟踪多个远程仓库并将其更改拉到您自己的仓库中非常容易。
我已经很久没有使用Mercurial了,大约是在v1.0左右,所以我不知道现在是否可以在Mercurial中实现这一点;据我所知,在我上次查看Mercurial时还不行。

2
在Mercurial中,您可以在[paths]部分中添加命名路径,并使用hg paths列出它们。Git用户通常希望找到一种不使用文本编辑器就能添加路径的方法,但是在.hg/hgrc~/.hgrc中添加一行即可解决问题。 - Ry4an Brase
你能否将命名远程的所有状态(分支、标签等)存储在Hg仓库中? - mipadi
@mipadi,能否请您举一个这样的用例呢?我不太了解git,但我有一种感觉,在hg中最接近您所描述的(也感觉足够接近,但我有偏见 :))是克隆远程repo,然后在您自己的repo下添加一个条目,指向您的克隆。据我所知,您无法将远程内容与您自己的内容分开存放在单个hg repo中(我认为这就是您所说的git可以实现的)。但是,是的,一个单独的克隆将跟踪所有远程分支、标签等。 - anton.burger
2
让我们以 GitHub 为例。假设您克隆了一个有很多分支的存储库;使用 Git,我可以“命名”每个分叉的存储库并在我的存储库中跟踪它们(这使得从远程分支拉取更改变得容易)。 - mipadi
初始答案以及评论对我帮助很大。谢谢各位。特别感谢shambulator提供的链接。 - user345566

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接