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

时间:2018-11-03 16:03:07

标签: git git-lfs

我正在使用虚幻引擎4,它将所有资产文件序列化为二进制文件。当前,项目大小小于10MB,但.git文件夹几乎为700MB。 我已经LFS跟踪了所有资产文件,并在存储库上做了lfs migrate,但是存储库仍然很大。 GitHub表示文件位于LFS中,但是在推送重写的历史记录后,我没有看到LFS存储使用率计量表显示出来。

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

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

谢谢。

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

1 个答案:

答案 0 :(得分:3)

Git LFS将在最近提交中保留文件的版本。在这里,“最近”是指INCLUDE io.h ; header file for input/output .STACK 4096 .DATA nbrArray dword 23, 45, 21, 78, 95 dup(?) smallest dword 7FFFFFFFh secondSmall dword 7FFFFFFFh string BYTE 40 DUP (?) resultLbl BYTE "The answer is : ", 0 answer BYTE 40 DUP (?), 0 .CODE _MainProc PROC mov eax, smallest mov edx, secondSmall mov ebx,0 lea ebx, nbrArray mov ecx, 5 jecxz end1 forLoop1: cmp eax, [ebx] mov edx,[ebx] jg swap jmp cont cont: add ebx,4 loop forLoop1 swap: mov eax,[ebx] add ebx,4 loop forLoop1 dtoa answer, eax output resultLbl, answer end1: mov eax, 0 ret _MainProc ENDP end 配置属性的值。因此,LFS将拉出7天或更晚的所有版本(这是默认值,但您可以更改)。

要删除所有文件,您需要lfs.fetchrecentrefsdays。修剪将删除所有早于git lfs prune + lfs.fetchrecentrefsdays的文件版本。 lfs.pruneoffsetdays默认为3,而lfs.pruneoffsetdays默认为7,因此,当运行修剪时,所有10天以上的版本都会被删除。

更多信息here

编辑:至于我遇到的“无法签出文件”错误,干净安装Git可以解决问题。