致命:无法从承诺者远程获取 SHA

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

尝试使用无树获取来获取 Sonarqube 中的责任归属的所有提交历史记录。但最终得到了上面的错误。

环境是带有托管代理的 Azure DevOps。 Git 版本显示 - git-lfs/3.4.0 (GitHub; windows amd64; go 1.20.6; git d06d6e9e)

尝试使用此处的说明 https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/steps-checkout?view=azure-pipelines

具体

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

azure-devops
1个回答
0
投票

在结帐步骤中添加

fetchFilter
时,我可以重现相同的问题。

enter image description here

这可能与设置

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

结果:

enter image description here

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