如何指定 Git LFS 文件的存储位置?

How to specify where Git LFS files will be stored?

我只是想知道是否有人可以消除我对使用 Git 大文件存储的一些困惑。

创建新存储库时,我知道如何使用 git lfs track 跟踪某些文件,但您如何指定这些文件的存储位置?

比如我正在做的项目中有很多png和wav文件。这些正在使用 git lfs track 进行跟踪。 Git LFS 网站说它们存储在远程服务器上,但我无法找到该信息在我们的存储库中的位置。

此外,当第二个用户克隆 repo 时,该项目仅包含指向 LFS 对象的指针。他们如何 find/use url 存储实际文件的遥控器?

(我们使用 Bitbucket 和本地系统 git 作为我们的存储库。)

据我了解,默认情况下它们存储在Github的服务器上。您还可以为此在本地设置服务器(他们提供 API 文档以及他们所谓的 "reference server implementation"),并在 git 配置

中指定服务器

The Git Lfs website says that they are stored on a remote server, but I cannot find out where that information is in our repository.

它们没有存储在 存储库中,至少在技术意义上是这样。 git-lfs 添加第二个区域,大文件存储区域,它是您的存储库的对等区域。大文件存储在那里。

我原以为 BitBucket 会在他们的网站上以有意义的方式展示这些信息。

In addition, when a second user clones the repo, the project contains only pointers to the LFS objects.

他们需要安装 git-lfs。那就是负责下载和上传大文件内容的程序。

Git-LFS存储服务器由lfs.url属性指定,例如:

git config lfs.url https://github.com/foo/bar.git/info/lfs

默认(当 lfs.url 未设置时)是使用一些试探法从远程的 URL 派生 Git-LFS 服务器 URL:git@github.com:foo/bar.git -> https://github.com/foo/bar.git/info/lfs

您可以通过以下方式查看每个远程服务器的当前服务器:

git lfs env | grep Endpoint

注意:当前 git-lfs (2.13.3) 仅支持 HTTP/HTTPS 和 file:// 端点协议,因此您无法通过 SSH 将 LFS 对象推送到远程克隆, 例如。解决方法是在 sshfs 上安装远程存储库并使用 file://.