【问题标题】:I try to get the latest git tag but doesn't work我尝试获取最新的 git 标签但不起作用
【发布时间】:2019-11-04 13:45:45
【问题描述】:

我正在尝试从其他分支获取最后一个标签。 我有两个分支“开发”和“发布”。

所以我使用这段代码来获取最后一个标签:

#from release branch
git describe develop

在我的桌面上显示版本

V1.0.0.13-CC

我的 git 版本是:

git version 2.17.1

好的。所以我的问题是下一个: 我正在使用 Azure devops 和一个带有内联 powershell 的管道来执行此操作:

$tagversion = $(git describe develop)
Write-Host  'Version Git: ' $tagversion

此消息显示错误:

##[error]fatal: Not a valid object name develop

Te 存储库与 2 个分支相同,但我不知道是什么问题。 天蓝色的 git 版本是 git 版本 2.18.0.windows.1

有人可以帮助我吗? 有没有其他方法可以做到这一点?

非常感谢。

【问题讨论】:

  • 错误信息暗示目标仓库没有develop 分支。你确定你的目标是正确的回购吗?顺便说一句:您不需要在git 调用周围使用$(...),并且通常应该避免使用Write-Host,除非您的意图是打印到屏幕。因此:$tagversion = git describe develop; "Version Git: $tagversion"
  • 通常,CI 系统在处理源代码方面会尝试提高效率。如果为 release 分支触发构建,它将是在构建代理上的本地克隆中检出的唯一本地分支。也就是说,命令 git describe some-other-branch 不会找到该分支名称。如果您尝试将其更改为 git describe origin/develop 而不仅仅是 develop 怎么办?
  • 是的!两个都是对的。 Azure devops 不知道开发分支,但起源/开发运行正常。非常感谢。
  • @Yan Sklyarenko 因为您的解决方案有效。您可以发表您的评论作为答案。因此,它可能会帮助遇到此问题的其他人。
  • @LeviLu-MSFT 感谢您的提示,完成!

标签: git powershell azure-devops


【解决方案1】:

通常,CI 系统在处理源代码方面会尽量提高效率。如果为 release 分支触发构建,它将是在构建代理上的本地克隆中检出的唯一本地分支。

也就是说,命令git describe some-other-branch 不会找到该分支名称。尝试将其更改为 git describe origin/develop 而不仅仅是 develop - 它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2017-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    相关资源
    最近更新 更多