【问题标题】:Difference between git-lfs env Endpoint and LfsStorageDir?git-lfs env Endpoint 和 LfsStorageDir 之间的区别?
【发布时间】:2019-03-10 05:11:48
【问题描述】:

我想我了解了 lfs 的机制及其通过指针跟踪二进制文件的方法,并且只根据需要克隆数据,但我无法确定 lfs 存储批量数据的位置。就我而言,我怀疑 lfs 将数据保存在本地,因为我的 github 存储库相对于项目(源+配置:72KB,内容:140.7MB)很小(175KB!),而本地 .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 的报告大小是正确的,不用担心,但这与我所读到的关于 github lfs here,git-lfs files here 的内容相矛盾。我读到的所有内容都说它将它们存储在对等或不同的服务器上,但是您如何识别该服务器位置?我读到 env 命令中报告的端点应该是位置,但是 github 上报告的大小是错误的。

有人可以澄清 Endpoint 和 LfsStorageDir 之间的区别或解释如何找到 lfs 数据的实际服务器/位置吗?

【问题讨论】:

    标签: git github git-lfs


    【解决方案1】:

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

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

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

    【讨论】:

    • 这清除了端点,但您知道如何获取它的大小吗?重要吗(重新 github 配额)?
    • 本地存储大小可以使用LfsStorageDir 上的du(或Windows 等效项)计算。在 GitHub 上,您可以在计费设置中查看用户或组织的总使用量,但不能查看单个存储库。
    猜你喜欢
    • 2022-06-14
    • 2018-06-07
    • 1970-01-01
    • 2018-10-07
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    相关资源
    最近更新 更多