我正在使用虚幻引擎4,它将所有 Assets 文件序列化为二进制文件。当前,项目大小小于10MB,但.git文件夹几乎为700MB。
我已经LFS跟踪了所有 Assets 文件,并在存储库上做了lfs migrate
,但是存储库仍然很大。 GitHub表示文件位于LFS中,但是在推送重写的历史记录后,我没有看到LFS存储使用率计量表上升。
我不确定这是否是LFS的工作方式,但是据我了解,Git将在LFS中存储指向该文件的指针,并且仅从HEAD所在的提交中下载文件的版本。
我在这里很迷路。我认为值得一提的是,我在git中还是个新手,所以请放轻松。
提前致谢。
编辑:
我运行了git lfs install --skip-smudge
,然后克隆了repo,这使得repo文件夹要小得多,因为克隆时没有下载LFS文件。问题在于,现在我只有指针文件,并且执行git lfs pull
无法 check out 所有文件。错误消息是Could not check out "<file-name>"
。
最佳答案
Git LFS将在最近的提交中保留文件的版本。在这里,“最近”是指lfs.fetchrecentrefsdays
配置属性的值。因此,LFS将 pull 出7天或更晚的所有版本(这是默认值,但您可以更改)。
要删除所有旧文件,您需要git lfs prune
。修剪将删除早于lfs.fetchrecentrefsdays
+ lfs.pruneoffsetdays
的所有文件版本。 lfs.pruneoffsetdays
的默认值为3,而lfs.fetchrecentrefsdays
的默认值为7,因此,当运行修剪时,所有10天以上的版本都将被删除。
更多信息here
编辑:对于我收到的“无法 checkout 文件”错误,使用,干净安装Git可以解决问题。
关于git - 迁移到LFS后,存储库仍然很大,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53133053/