迁移到 LFS 后存储库仍然很大

Repository still big after migrating to LFS

我正在使用 Unreal Engine 4 并将其所有资产文件序列化为二进制文件。目前,项目大小不到 10MB,但 .git 文件夹几乎有 700MB。 我让 LFS 跟踪了所有资产文件并对回购做了 lfs migrate,但回购仍然很大。 GitHub 说文件在 LFS 中,但在推送重写的历史记录后我没有看到我的 LFS 存储使用量表上升。

我不确定这是否是 LFS 的工作方式,但据我了解,Git 将在 LFS 中存储指向该文件的指针,并且仅从您的 HEAD 所在的提交中下载该文件的版本在。

我在这里很迷路。我认为值得一提的是,我是 git 的新手,所以请放轻松。

提前致谢。

编辑: 我 运行 git lfs install --skip-smudge 然后克隆了 repo,这使得 repo 文件夹变小了很多,因为克隆时没有下载 LFS 文件。问题是现在我只有指针文件并且执行 git lfs pull 无法签出所有文件。错误信息是 Could not check out "<file-name>".

Git LFS 将保留 最近 提交中的文件版本。这里,'recent'表示lfs.fetchrecentrefsdays配置的值属性。所以 LFS 将提取所有 7 天或更新的版本(这是默认值,但您可以更改它)。

要删除所有旧的 文件,您需要git lfs prune。 p运行e 将删除所有早于 lfs.fetchrecentrefsdays + lfs.pruneoffsetdays 的文件版本。 lfs.pruneoffsetdays 默认为 3,lfs.fetchrecentrefsdays 默认为 7,因此当 p运行e 为 运行 时,所有超过 10 天的版本都将被删除。

更多信息here

编辑: 至于我遇到的 "Could not checkout file" 错误,干净安装 Git 就可以了。