在哪里可以找到 git-lfs-authenticate 命令?

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

我可以成功地将使用 Git LFS 的 git 存储库推送到 Github,但是当我尝试将其推送到我自己的服务器时,出现以下错误:

git-lfs-authenticate: not found

$ git push origin main |& cat
batch request: sh: 1: git-lfs-authenticate: not found: exit status 127
Uploading LFS objects:   0% (0/1), 0 B | 0 B/s, done.
error: failed to push some refs to 'git.example.com:'

在本地主机上,我使用

git-lfs/2.13.2
,在远程主机上使用
git-lfs/2.7.1
。这些分别是 Debian 10 和 11 的当前版本。我尝试通过将 git-lfs 二进制文件放入
/usr/local/bin
中,在两台主机上使用
最新版本的 Git LFS
。现在输出略有不同,但我仍然遇到相同的错误:

$ git push origin main |& cat
batch request: sh: 1: git-lfs-authenticate: not found: exit status 127
error: failed to push some refs to 'git.example.com:'

我还尝试过搜索名为

git-lfs-authenticate
的二进制文件,但它不存在于 Git LFS 的任何版本中。我还尝试阅读Git LFS Server Documentation,其中提到了
git-lfs-authenticate
命令,但它没有解释在哪里可以找到它或如何实现它。

git github git-lfs
2个回答
2
投票

您可能只是忘记了

git
将在哪里找到 LFS 后端的定义。 正如 @bk2204 已经提到的,我们假设您通过 ssh 查看了您的存储库,但大多数 LFS 后端不支持 ssh 连接。

因此,您需要定义所有/仅 LFS-Blob 应发送到

https
,即使您可以通过
ssh
查看存储库本身:

git clone ssh://git-server.com/foo/bar.git .
git config -f .lfsconfig lfs.url https://git-server.com/foo/bar.git/info/lfs
git add .lfsconfig && git commit -m"define lfs backend" && git push

正确的

lfs http url
是什么,取决于您的 git 主机。


1
投票

Git LFS 的协议主要基于 HTTP,并且

git-lfs-authenticate
命令用于允许用户向远程服务器进行身份验证,以获取通过基于 HTTP 的协议使用的身份验证凭据。 Git LFS 目前没有纯基于 SSH 的协议。

因此,不可能发布此客户端的通用版本,因为它需要与 HTTP 服务器交互,而这不能以通用方式完成。 不过,您可以构建自己的服务器来与您自己的 HTTP 服务器交互。

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