【问题标题】:Git flow release branches and tags - with or without "v" prefixGit 流程发布分支和标签 - 带或不带“v”前缀
【发布时间】:2014-02-07 23:09:17
【问题描述】:

我在各种与 git flow 相关的网站上看到了多个相互矛盾的定义。是否有官方建议或单一事实来源?

分支机构:release-1.2.3release-v1.2.3

标签:1.2.3v1.2.3

【问题讨论】:

标签: git naming-conventions git-flow


【解决方案1】:

嗯,基本上这是一个偏好问题,但我更喜欢带有v 的版本,因为Semver 做到了that way,并且我尝试尽可能接近该规范以获得合理的版本控制。

它还使过滤这些标签更容易,因为您可以按v,然后按 TAB 键进行自动补全:这将列出所有标签(可能还有一些分支),而一个标签可以有几个数字开头。

编辑:在 2019 年,Semver 在其常见问题解答中添加了一个部分,阐明“v”前缀是“表示版本号的常用方式”(请参阅​​ "Is “v1.2.3” a semantic version?")。


另请参阅:Is there a standard naming convention for git tags?

【讨论】:

  • 谢谢,这是有道理的。我认为有趣的是,Git Flow 项目本身确实使用 v 前缀:github.com/nvie/gitflow 由于您和@VonC 发布的原因,我仍然更喜欢包含 v 前缀的版本标签。
  • Semver 在版本 2 中删除了前缀 v
  • @schmijos @LeoTM - 该文档仅声明 v1.2.3 不是语义版本。问题是关于 Git 标签的。事实上,semver repo 仍然使用v2.0.0 作为版本 2 的标签:github.com/mojombo/semver/releases/tag/v2.0.0
  • semver 2.0 semver.org 没有说明需要以“v”前缀开头的标签!
【解决方案2】:

由于v代表版本,标签通常命名为vX.Y.Z,X.Y.Z跟在Semantic Versioning 2.0.0之后。

这允许 X.Y.Z 分支与这些标签共存,而无需处理诸如“致命:不明确的对象名称”之类的错误消息(如“Ambiguous Names with GIT?”)。

请注意,Git 本身的标签最近已经“适应”了一个令人惊讶的原因:请参阅“Code version change “rules””。

【讨论】:

  • 当人们使用像 semver 这样的最佳实践时,他们可能会使用像 Git Flow 这样的系统或类似的东西。这将防止 refs 的冲突(分支 eq 标签名称)。除此之外,什么会阻止一个分支命名vX.Y.Z呢?这并不是一个真正的争论:)
  • semver 2.0 semver.org 没有说明需要以“v”前缀开头的标签!
  • @jankal 我同意。我只提到了 X.Y.Z 策略的 semver。
  • 一个小的争论是,更多的人会得到v1.2.3而不是b1.2.3 :-)
【解决方案3】:

https://semver.org/#is-v123-a-semantic-version

“v1.2.3”是语义版本吗?不,“v1.2.3”不是语义版本 版本。但是,在语义版本前加上“v”是一种常见的做法 方式(英文)表明它是一个版本号。缩写 版本控制中经常看到“版本”作为“v”。示例:git 标记 v1.2.3 -m "Release version 1.2.3",在这种情况下,“v1.2.3”是一个标签 名称和语义版本是“1.2.3”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2021-05-14
    • 2023-03-19
    相关资源
    最近更新 更多