尝试使用无树获取来获取 Sonarqube 中的责任归属的所有提交历史记录。但最终得到了上面的错误。
环境是带有托管代理的 Azure DevOps。 Git 版本显示 - git-lfs/3.4.0 (GitHub; windows amd64; go 1.20.6; git d06d6e9e)
具体
fetchFilter 字符串。 使用 fetchFilter 过滤 Git 历史记录以进行部分克隆。 fetchFilter 设置支持无树和无 blob 提取。对于无树提取,请指定 fetchFilter: tree:0;要指定无 blob 提取,请指定 fetchFilter: blob:none。默认不过滤。
相关的 azure-pipeline.yaml 部分
steps:
- checkout: self
clean: true
fetchFilter: tree:0
构建抛出错误 - fatal: 无法从 promisor 远程获取 SHA
在结帐步骤中添加
fetchFilter
时,我可以重现相同的问题。
这可能与设置
fetchFilter
参数时的 git 凭证有关。当您设置 fetchFilter
时,git 命令将无法获取凭据。
问题出在结账功能本身。我建议您可以将问题报告给开发者社区。
要解决此问题,您可以在现有结帐步骤之前添加额外的结帐步骤(设置
persistCredentials:true
)以存储预配置的 git 凭据。
例如:
steps:
- checkout: self
persistCredentials: true
path: storecred
- checkout: self
clean: true
fetchFilter: tree:0
fetchDepth: 0
persistCredentials: true
结果: