我正在尝试使用Powershell处理VSTS任务中的git脚本,但它没有按预期工作。
我正在做的是在最新标记之后获取最新的提交消息以放入发行说明,这是基本的git命令:
git log `git describe --tags --abbrev=0`..HEAD --no-decorate --no-merges --abbrev=0 --pretty=format:"%s"
但是Powershell不接受这种格式,所以我做了以下事情:
$latestTag = git describe --tags --abbrev=0
$releaseNotes = git log $latestTag..HEAD --no-decorate --no-merges --abbrev=0 --pretty=format:"%s"
似乎当我把变量$latestTag
放在..HEAD
旁边时它会断行,如果我指定标签,例如。 v1.2.9
而不是它运作良好的变量。
我该怎么做才能让它正常运行?谢谢。
您可以将表达式$latestTag..HEAD
括在"
标记中,如
$latestTag = git describe --tags --abbrev=0
$releaseNotes = git log "$latestTag..HEAD" --no-decorate --no-merges --abbrev=0 --pretty=format:"%s"
这与PowerShell如何扩展变量有关,但我没有足够的PS来真正理解它。
如果您想将它保留在一行上,您可以尝试使用powershell语法来嵌入与原始内容类似的注释。转换为PowerShell友好的语句我觉得它会是这样的
git log $(git describe --tags --abbrev=0)..HEAD --no-decorate --no-merges --abbrev=0 --pretty=format:"%s"
这应解析$()
中的表达式,然后将该结果作为文本插入git log
命令,就像您的原始文件一样。