我有一个在Azure Repos中使用Git LFS的项目,使用Git LFS检入了几个二进制图像文件。当我的Azure Pipelines构建执行git pull
时,不会从Git LFS中提取图像文件,而我剩下几个零字节的图像文件。
我正在使用自定义的自托管Azure Pipelines构建服务器,该服务器上安装了最新版本的Git LFS:
PS C:\rehan> git lfs --version git-lfs/2.7.2 (GitHub; windows amd64; go 1.12.2; git 08a08ae0)
我尝试添加一些步骤来执行git lfs install
,但这无济于事。登录构建服务器后手动执行git lfs pull
时,文件已正确下载。当我在Azure管道中作为构建步骤运行git lfs pull
时,出现以下错误:
fatal: could not read Username for 'https://foo.visualstudio.com': terminal prompts disabled
batch response: Git credentials for https://foo.visualstudio.com/Bar/_git/Bar not found.
error: failed to fetch some objects from 'https://foo.visualstudio.com/Bar/_git/Bar.git/info/lfs'
Downloading LFS objects: 0% (0/1), 0 B | 0 B/s
##[error]PowerShell exited with code '1'.
答案 0 :(得分:1)
您必须对https使用lfs才能与Azure Devops一起使用,并且在进行构建时必须进行LFS签出:
steps:
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
lfs: true
如果您使用的是UI向导,则有一个复选框可以检查lfs
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#checkout
https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/pipeline-options-for-git?view=azure-devops#checkout-files-from-lfs
答案 1 :(得分:0)
我认为错误很直接。 您尚未在管道中提供git凭据。
更重要的是,我可以问一下,为什么要使用git来生成二进制文件吗? 您打算如何对git无法理解的内容进行版本控制? 我的意思是,您打算如何使用diff等功能并在二进制文件上合并?