在Powershell中执行git命令

问题描述 投票:1回答:2

我正在尝试使用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而不是它运作良好的变量。

我该怎么做才能让它正常运行?谢谢。

git powershell azure-devops
2个回答
4
投票

您可以将表达式$latestTag..HEAD括在"标记中,如

$latestTag = git describe --tags --abbrev=0
$releaseNotes = git log "$latestTag..HEAD" --no-decorate --no-merges --abbrev=0 --pretty=format:"%s"

这与PowerShell如何扩展变量有关,但我没有足够的PS来真正理解它。


1
投票

如果您想将它保留在一行上,您可以尝试使用powershell语法来嵌入与原始内容类似的注释。转换为PowerShell友好的语句我觉得它会是这样的

git log $(git describe --tags --abbrev=0)..HEAD --no-decorate --no-merges --abbrev=0 --pretty=format:"%s"

这应解析$()中的表达式,然后将该结果作为文本插入git log命令,就像您的原始文件一样。

© www.soinside.com 2019 - 2024. All rights reserved.