如何将 git lfs 与 Visual Studio Team Services 托管构建代理一起使用

How to use git lfs with Visual Studio Team Services hosted build agents

我使用 git lfs 来存储我的 git 存储库的大文件。然后我尝试使用托管代理构建这个 repo。我的构建非常简单。它只有一项任务:执行 PowerShell。在调用的脚本中,我要做的第一件事是获取我的 lfs 依赖项。因此,我的脚本中包含以下内容:

& git lfs fetch

不幸的是,我的构建失败并出现以下错误:

2016-03-04T19:49:05.7021988Z ##[error]git: 'lfs' is not a git command. See 'git --help'.
2016-03-04T19:49:05.7031986Z ##[error]Did you mean this?
2016-03-04T19:49:05.7041987Z ##[error]  flow

由于我无法在托管代理上安装任何东西,我应该如何获得 git 可用的 lfs?

编辑 在本期中,我不是在谈论 git 描述的 lfs 身份验证问题。我严格说的是调用git lfs.

的问题

一旦您可以调用 git lfs,请查看此 以解决身份验证问题。

如果您被允许在构建期间安装软件并访问互联网,您可以在 [=13] 之前在 cmd / PowerShell 任务中使用 Chocolatey package 安装 git-lfs =]-lfs操作。

您收到此错误消息是因为 git-lfs 默认情况下未安装在 Hosted Build Agent 上。

并且由于您使用的是 Hosted Build Agent,因此您没有管理员权限,因此通过 Chocolatey 在其上安装 git-lfs 会有点麻烦。另一种方法是直接下载 the binary files for git-lfs 并将其上传到源代码管理中。然后您可以在脚本中使用绝对路径调用 git-tfs.exe。

以下是有关 Eddie 提供的解决方案的更多详细信息。 git lfs 不是内置命令。这是一个 git custom command.

当您调用 git lfs 时,git.exe 不知道 lfs 命令。因此它在 PATH 环境变量中查找并搜索名为 git-lfs.exe 的程序。一旦找到,它就会使用提供的参数调用该程序。

所以调用git-lfs.exe pull等同于调用git.exe lfs pull.

因此,建议的解决方案是下载 git-lfs.exe,将其添加到您的 git 存储库(显然 LFS 不应跟踪它),然后调用 git-lfs.exe.

也可以将包含 git-lfs.exe 的文件夹添加到您的路径环境变量中。这使得您可以像往常一样使用 git.exe lfs pull 这样的命令。

Git Hosted Build Controller 现在默认支持 LFS。但是您确实需要在获取源代码步骤中启用它。