在我们的BitBucket中,我们有一些像这样的标签:
build-0.0.4.152
0.0.4
build-0.0.3.151
build-0.0.3.150
0.0.3
所有带前缀“build”的标签都来自中间的预发行版本,其中不带前缀的标签是生产中发布的版本。我有一个gradle方法可以从VCS根目录获取最新的生产标签(因此,在这种情况下,我希望获得标签
0.0.4
):def getVersionFromTag() {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--abbrev=0', '--match="[!build]*"'
standardOutput = stdout
}
return stdout.toString().trim()
}
在IntelliJ本地,该构建能够获取正确的标签。但是在TeamCity上,它在此处的构建日志中显示错误:
fatal: No names found, cannot describe anything.
如果我从命令行中删除参数
'--match="[!build]*"'
,则在上述方法中它将起作用,但它将获得最新的标记( build-0.0.4.152 ,但不是我想要的 0.0.4 )。因此,我认为该参数在TeamCity的git版本中不可用,但在我自己的git(2.6.3.windows.1)中可用,是真的吗?如果我错了,请纠正我,并让我知道如何解决此问题。谢谢
最佳答案
删除双引号后,它可以工作'--match=[!build]*'
关于git - git describe --match在TeamCity上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46946145/