如何将Git LFS与Azure Repos和管道使用



我有一个使用git lfs在Azure存储库中的项目,并使用Git LFS检查了几个二进制图像文件。当我的Azure Pipelines构建执行git pull时,图像文件未从git lfs中撤出,我将带有几个零字节图像文件。

我使用的是自定义的自托管Azure Pipelines Build Server,它在其上安装了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'.

您必须使用https for LFS与Azure DevOps一起使用,并且在执行构建时必须进行LFS检查:

steps:
- checkout: self  # self represents the repo where the initial Pipelines YAML file was found
  lfs: true

如果您使用的是UI向导,则有一个复选框来检查LFS

https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view= azure-devops& tabs = schema#checkout
https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/repos/pipeline-options-for-git?view= azure-devops#checkout#checkout-files-files-from-lom-lfs-lom-lfs

不幸的是, @4C74356B41的答案对我不起作用。我的问题与@haroon相同:

我使用lfs配置了checkout步骤,但是用哈希保留文件。

解决方案是手动运行git lfs fetchgit lfs pull

  steps:
  - checkout: self
    lfs: true
  - script: |
     git lfs fetch
     git lfs pull
    displayName: git-lfs

我认为错误非常简单。您尚未在管道中提供GIT凭据。

更重要的是,我能问为什么您要使用git做二进制文件?您如何打算对Git不了解的内容进行版本控制?我的意思是,您打算如何使用diff和诸如二进制文件中合并之类的功能?

相关内容

  • 没有找到相关文章

最新更新