我对分布式版本控制系统有点新意,所以我正在阅读Mercurial手册,我理解的是标签功能可用于标记版本号,例如标记为v1.0和另一个v1。等等。
至于分支,它们将用于添加新功能而不会打扰其他开发人员,然后在一切正常后将其与默认分支合并。
是吗?
请指教。感谢。
答案 0 :(得分:9)
听起来你大多都是从git伙伴那里得到答案的,他们几乎都了解Mercurial。
核心区别在于,在git中,分支名称不是变更集的组成部分 - 它只是变更集现在的位置。在mercurial中,Named Branch的名称永远是其中的一部分。这导致那些了解git的人比他们知道的Mercurial说两个不太正确的事情中的一个:
hg branches
输出可以增长很大。所有这一切都在Steve Losh的Guide to Branching in Mercurial中得到了很好的阐述,正如OJ最初的回答(我赞成)。
总结:
当然,任何一种工具都可以以任何一种方式使用 - 它更多地是关于规范而不是“正确”。
答案 1 :(得分:5)
阅读以下内容以帮助澄清您的理解(与Mercurial相关):
答案 2 :(得分:3)
这是一个取决于你观点的问题。在 git 中,分支用于很多目的(即一个是开发)。事实上,git中的所有内容都是分支。并且每个分支中可能有不同的标记。
我建议阅读这个gread教程,因为它解释了很多关于分支和发布的内容:
答案 3 :(得分:2)
关于git的两个答案正确地同意你的观点,标签适用于发布,分支适用于新功能,但并不能解释原因。
git标记永久指向给定的提交。这意味着它真的仅有利于标记里程碑,如发布。
另一方面,分支可以被检出并提交,这意味着分支将提前指向新的提交。这使分支 方式在git中工作;任何时候你提交你想要签出一个适当的分支,以便它会记录你的进度。这包括新功能,如您所说,还包括任何其他工作。Mercurial的情况大致相似,虽然分支不是那么轻量级,所以你不会像在git中那样频繁地进行分支。并且标签的处理方式略有不同,但仍然适用于标记版本。
答案 4 :(得分:0)
我不是Mercurial用户(我使用Git),但就Git工作流而言,你已经死了。在与主分支合并之前,通常由一个开发人员使用分支来处理他们自己的错误修正/功能。
标签通常用在主分支上,用于标记里程碑,通常是版本。这使您可以轻松地恢复到该状态,而无需使用提交编号(在Git中是十六进制数字的长字符串,不确定Mercurial如何工作)。
加里