那么版本的"标签"和新功能的"分支"?

emu*_*rad 4 git version-control mercurial github bitbucket

我对分布式版本控制系统有点新意,所以我正在阅读Mercurial手册,我所理解的是标签功能可用于标记版本号,例如标记为v1.0和另一个v1.1等.

至于分支,它们将用于添加新功能而不会打扰其他开发人员,然后在一切正常后将其与默认分支合并.

是对的吗?

请指教.谢谢.

Ry4*_*ase 9

听起来你大部分都是从git伙伴那里得到答案,他们几乎也了解Mercurial.

核心区别在于,在git中,分支名称不是变更集的组成部分 - 它只是变更集现在的位置.在mercurial中,Named Branch的名称永远是其中的一部分.这导致那些了解git的人比他们知道的Mercurial说两个不太正确的事情中的一个:

  • 应该在每个功能的基础上使用命名分支 - 在Mercurial中使用每个功能的命名分支没有任何问题,但由于这些分支名称永远不会消失,因此hg branches输出可能会变得非常大.
  • Mercurial中的分支不像git那样轻量级 - Mercurial中的命名分支不是那么轻量级(它们是永久性的),但这就是为什么它不是功能的标准.Mercurial中的匿名分支比git的命名分支更轻量级,Mercurial中的Bookmark分支与git分支完全相同.

所有这些都在Steve Losh的Mercurial分支指南中得到了很好的阐述,正如OJ最初的回答(我赞成).

综上所述:

  • 混帐
    • 版本:标签
    • 特色:分支机构
    • 发展线(稳定等):单独的存储库
  • 水银:
    • 版本:标签
    • 功能:书签或匿名分支
    • 发展线(稳定等):命名分支

当然,任何一种工具都可以以任何一种方式使用 - 它更多地是关于规范,而不是"正确".

  • 为什么建议将git中的开发线分成不同的存储库?我真的不明白. (2认同)