git-lfs env 端点和 LfsStorageDir 之间的区别?

Difference between git-lfs env Endpoint and LfsStorageDir?

我想我了解了 lfs 的机制及其通过指针跟踪二进制文件并仅根据需要克隆数据的方法,但我无法得到 lfs 存储大量数据的可靠确认。在我的例子中,我怀疑 lfs 将数据保存在本地,因为我的 github 存储库相对于项目(Source+Config:72KB,Content:140.7MB)和本地 .git 目录要大得多 (1.2GB)。

当我 运行 git lfs env 时,我得到以下信息(省略了大部分报告,显示了似乎相关的内容):

Endpoint (s05_testinggrounds_remote)=https://github.com/rebusb/S05_TestingGrounds.git/info/lfs (auth=basic)
...
LocalMediaDir=D:\Unreal Projects\Udemy C++ S05\TestingGRounds\..git\lfs\objects
...
LfsStorageDir=D:\Unreal Proejcts\Udemy C++ S05\TestingGrounds\.git\lfs
...

我的直觉告诉我文件是本地的,github 报告的大小是正确的,不用担心,但这与我读到的 and git-lfs files here 相矛盾。我读到的所有内容都说它将它们存储在对等或不同的服务器上,但是您如何识别该服务器位置?我读到 env 命令中报告的端点应该是位置,但是 github 上报告的大小是错误的。

有人可以弄清楚 Endpoint 和 LfsStorageDir 之间的区别,或者解释一下如何找到 lfs 数据的实际 server/location 吗?

Git 默认情况下,LFS 只会下载您检查提交所需的数据。当它确实下载数据时,它会将数据从您在 Endpoint 中看到的位置下载到 LfsStorageDir 的子目录中。您创建的新对象也存储在 LfsStorageDir 的同一子目录中,直到您推送它们。

默认使用origin遥控器,标记为Endpoint=;其他远程值仅在您指定 git lfs fetch <remote> 时使用。当您推送到远程时,预推送挂钩将相关的 LFS 数据推送到该远程,使用该远程的 Endpoint 位置。如果你想推送所有的LFS数据,你可以使用git lfs push --all <remote>.

许多托管服务提供商(如 GitHub)为您的数据提供单独的大文件存储区域,可以使用标准 Git LFS 客户端访问。无法直接在服务器上查看文件,因为只能使用 Web 界面或 LFS 客户端访问它们。