【问题标题】:Get *next* tag, like git describe but "forwards"获取 *next* 标签,如 git describe 但“转发”
【发布时间】:2018-03-13 08:06:28
【问题描述】:

通过git describe,我可以获得有关我当前提交所基于的最新标签的信息,以及我离它有多远。

我正在寻找一种方法来根据相同的信息为 下一个 版本的 beta 版本构建语义版本号。换句话说,给定一棵像

A -- B -- C -- D
|              |
v1.2.3         HEAD

现在,git describe 可以给我类似 v1.2.3-4-D 的信息 - 但我如何获得类似 v1.2.4-betav1.3.0-beta 的信息(取决于我说我想增加哪个段)? git 中是否有一些内置工具来处理这个问题,还是我必须从 git describe 开始,然后将其传递给其他可以为我增加的东西?


提出的重复问题并不能解决我的问题,因为它依赖于git describe --contains,并且只有在未来标签已经存在时才有效。我正在寻找一种方法,根据之前的标签,推断即将发布的版本将是什么,只给出当前的回购状态和哪一部分(主要/次要/补丁)应该递增。

【问题讨论】:

  • @max630: 不,这个问题是关于如何做到这一点当下一个标签存在时,而这个问题是关于推断下一个标签将是什么之前它存在.
  • Git 不知道什么时候,用什么名字,在哪个提交上创建标签。
  • 编写一个脚本,它会在你的分支上找到最后一个版本标签(例如:通过从git describe --tags 的输出中读取它),并构建你期望的下一个版本

标签: git semantic-versioning


【解决方案1】:

cmets 似乎表明使用普通的git 命令是不可能的;因此,我使用了GitVersion,它正好解决了我想要解决的问题(尽管使用磁盘上的一个小 yml 文件来存储关于什么版本的数据,而不是从 git describe 派生它)。

【讨论】:

  • 这似乎是正确的答案,但请注意,这实际上与 Git 无关:我们将使用完全相同的程序来确定标记什么如果我们将下一个版本存储在 Mercurial 或 P4 中,甚至根本没有正式的版本控制系统。
  • @torek:当然。但是当我问这个问题时,我不知道,可以吗? ;) 而且我可能仍然被证明是错误的 - 如果有一种方法可以从 git 命令构建这些信息,而不依赖于 GitVersion 之类的工具(它比我需要的要多得多),它可能是一个比什么更好的解决方案我现在有。
猜你喜欢
  • 1970-01-01
  • 2021-11-10
  • 2014-05-04
  • 2022-07-05
  • 2021-09-24
  • 2016-09-15
  • 2019-08-22
  • 2013-03-20
  • 1970-01-01
相关资源
最近更新 更多