【问题标题】:Azure Pipeline git clone cannot handle spaces in repo URLAzure Pipeline git clone 无法处理 repo URL 中的空格
【发布时间】:2021-05-06 13:40:10
【问题描述】:

使用 Azure Pipelines,我正在尝试在自托管 Windows 代理上执行“git clone --mirror”。

如果我在 MS 托管的代理上使用 bash,它就可以工作。但是我的自托管代理现在没有 bash,所以我想改用脚本:

script: 'git clone --mirror https://dev.azure.com/MyCompany/Project%20Name/_git/MyRepo'

但我收到此错误:

远程:TF200016:以下项目不存在:Project0Name。 验证项目名称是否正确以及项目 存在于指定的 Azure DevOps 服务器上。致命的:存储库 'https://dev.azure.com/MyCompany/Project0Name/_git/MyRepo/' 未找到

在错误消息中,项目名称中的 URL 编码空格已替换为“0”。所以它找不到 repo,因为 URL 现在是错误的。

MS 托管代理和我的自托管代理都会出现此错误。

问题似乎与此处相同: Cannot clone git repository in command line script task in Azure DevOps Pipelines

为什么 URL 会以这种方式更改?我该如何解决?

【问题讨论】:

    标签: git azure-devops


    【解决方案1】:

    我在上面的链接中找到了答案。 '%' 字符需要像这样转义:

    script: 'git clone --mirror "https://dev.azure.com/MyCompany/Project%%20Name/_git/MyRepo"'
    

    另外,我添加了双引号,但不确定这是否会有所不同。

    【讨论】:

      猜你喜欢
      • 2012-08-24
      • 2019-11-21
      • 1970-01-01
      • 2015-09-24
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 2014-11-18
      相关资源
      最近更新 更多