在Mercurial中,“head”和“branch”有什么区别?

7

我是Mercurial和DVCS的新手。"head"和"branch"有什么区别?

4个回答

8
如果你将它看作一棵树,那么头就是叶子,在分支的最末端。
在Mercurial自己的维基上有很好的解释:
分支

5
答案是“这取决于情况”。Mercurial有四种不同的分支策略供您选择,根据您选择称之为分支的方式,答案可以是“它们没有关联”到“它们是相同的东西”。
首先看一下四种分支类型
  1. 命名分支
  2. 书签作为分支
  3. 匿名分支
  4. 克隆作为分支
如果您对其中任何一种不清楚,请点击链接。
然后看看每种类型,让我们看看一个“head”和一个“branch”的关系:
  1. 命名分支 - 完全不相关。您可以在每个命名分支上拥有多个头部,并且不是每个命名分支都需要有一个头部。
  2. 书签作为分支 - 大多数情况下不相关。书签可以指向头部或非头部,但当您提交时,它们会移动到“新头”。
  3. 匿名分支 - 在这个模型中,头部分支。它们没有名称,非常轻巧。
  4. 克隆作为分支 - 头部分支,但您更可能在单独的存储库中拥有它们而不是在同一个存储库中。您拉取/推送,然后向该存储库合并到一个分支。

简而言之:要使用DVCS,您需要了解头和分支。


1

来自维基百科

head 一个没有子节点的变更集

branch 所有具有相同分支名称的变更集的集合

每个变更集都属于一个分支,如果未指定,则为default

如果您是新手并正在寻找快速入门,请访问hginit.com


1
提到hginit.com,这是一篇所有Mercurial用户都应该阅读的精心撰写的指南。 - icabod
这是一个“命名分支”,但Mercurial有四种类型:命名、书签、匿名和克隆。 - Ry4an Brase

0

很难指出差异,因为这些是正交概念。它们在Mercurial维基中有解释,其中包括:


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