将“ git describe --abbrev = 0”结果转换为变量

时间:2019-04-02 13:13:08

标签: windows git cmd

目标:将git describe --tag=Foo --abbrev=0的输出放入Windows环境变量。

我的尝试

C:\Projects\Foo> FOR /F "tokens=* USEBACKQ" %F IN \
   (`git describe HEAD --match "Foo*" --abbrev=0 --debug`) DO SET Var=%F

结果:

  

描述HEAD裁判或标签不完全匹配,试图描述

     

在带有注释的d501f4f270405435692e5eb369fafbb53f0c74a2上完成的搜索   遍历463 Foo0.0-beta 562次提交

     

描述0致命:无效的对象名称0

那是一个奇怪的致命错误。没有FOR,Git可以工作:

git describe HEAD --match "Foo*" --abbrev=0 --debug

  

与参考文献或标签没有完全匹配,正在搜索以描述

     

在d501f4f270405435692e5eb369fafbb53f0c74a2中完成的搜索已注释为463   Foo0.0-beta遍历了562次提交

     

Foo0.0-beta

现在describe 0 fatal可以追溯到--abbrev=0参数,但这是必不可少的参数。似乎FOR已将--abbrev=0参数分解为两部分,导致Git将0视为哈希值,并试图找到一个描述该哈希值的标签。

参考:Getting the output of a command into a variableGetting a tag name with git describe

1 个答案:

答案 0 :(得分:0)

使用插入号(^)逃脱=

FOR /F "tokens=* USEBACKQ" %F IN \
   (`git describe HEAD --match "Foo*" --abbrev^=0 --debug`) DO SET Var=%F