5

我使用 git lfs 来存储我的 git repo 的大文件。然后我尝试使用托管代理构建这个 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,请查看此答案以解决身份验证问题。

4

4 回答 4

3

现在,托管构建控制器默认支持 Git LFS。但是您确实需要在获取源步骤中启用它。

于 2016-12-29T11:54:18.587 回答
2

您会收到此错误消息,因为默认情况下托管构建代理上未安装 git-lfs。

而且由于您使用的是托管构建代理,因此通过 Chocolatey 在其上安装 git-lfs 会有点麻烦,因为您没有管理员权限。另一种方法是直接下载git-lfs 的二进制文件并将其上传到源代码管理中。然后,您可以在脚本中使用绝对路径调用 git-tfs.exe。

于 2016-03-07T05:51:27.743 回答
1

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

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

所以 callgit-lfs.exe pull等价于 call git.exe lfs pull

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

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

于 2016-03-08T19:44:45.497 回答
0

如果您被允许在构建期间安装软件并可以访问 Internet,则您可以在git-lfs 操作之前使用 cmd / PowerShell 任务中的Chocolatey 包安装 git-lfs。

于 2016-03-06T19:53:15.673 回答