git describe --match 不适用于 TeamCity

git describe --match does not work on TeamCity

在我们的 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 root 获取最新的生产标签(所以在这种情况下,我希望得到标签 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]*'