在Mercurial中有匿名分支(分支头),并且可以使用书签(通过书签扩展)。这样的书签分支纯粹是本地的,并且这些名称(直到1.6版)不能使用Mercurial转移。可以使用rsync或scp将.hg/bookmarks文件复制到远程存储库。你也可以使用hg id -r <bookmark> <url>来获取书签当前尖端的修订id。
这些只是强大的refspec Git语法的默认情况的例子:通过refspecs,你可以指定和/或配置想要获取的分支,以及在哪里存储它们。例如默认“fetch all branches”;Case由'+refs/heads/*:refs/remotes/origin/*'通配符refspec表示,以及';fetch single branch"是'refs/heads/<branch>:'的缩写。Refspecs用于将远程存储库中的分支(refs)名称映射到本地refs名称。但是你不需要知道(太多)refspecs就能有效地与Git一起工作(主要感谢“Git远程”;命令)。
< p > 差异:
这是Mercurial和Git之间的主要区别之一,正如詹姆斯woodyatt和史蒂夫Losh在他们的回答中所说的那样。默认情况下,Mercurial使用匿名轻量级代码线,在其术语中称为“头部”。Git使用轻量级的命名分支,使用内射映射将远程存储库中的分支名称映射到远程跟踪分支的名称。Git“forces"你需要为分支命名(好吧,除了单个未命名的分支,称为分离HEAD的情况),但我认为这对于分支较多的工作流(例如主题分支工作流)更有效,这意味着在单个存储库范例中有多个分支