git - Azure Pipeline git clone 无法处理 repo URL 中的空格
问题描述
使用 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 会以这种方式更改?我该如何解决它?
解决方案
我在上面的链接中找到了答案。'%' 字符需要像这样转义:
script: 'git clone --mirror "https://dev.azure.com/MyCompany/Project%%20Name/_git/MyRepo"'
另外,我添加了双引号,但不确定这是否会有所不同。
推荐阅读
- c - 定义返回其参数的宏的目的是什么?例如#define U(x) x
- python - 使用 websocket-client Python 打开 websocket 连接时出现问题
- python-3.x - 在熊猫创建的html表格中添加边框
- api - Python3 Connexion如何实现状态CSRF保护
- spring-framework-beans - Spring框架升级更新上下文bean名称
- python - 读取带有嵌套标签的 xml
- reactjs - 在 jsx 打字稿中的样式属性上,没有重载匹配此调用
- android - b/t 默认 Android 滚动功能 VS ScrollView / Nested Scrollview 有什么区别?
- api - API 标头和 ulr 路径之间的区别
- java - 更改默认密钥库后无法启动 CAS 6.4.x Tomcat 服务器