目标:将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 variable,Getting a tag name with git describe
答案 0 :(得分:0)
使用插入号(^)逃脱=
FOR /F "tokens=* USEBACKQ" %F IN \
(`git describe HEAD --match "Foo*" --abbrev^=0 --debug`) DO SET Var=%F