使用git-lfs/1.1.0(GitHub; linux 386;转1.5.1),文件大小4.3G.
git init
git lfs install
git lfs track *.nnex
Run Code Online (Sandbox Code Playgroud)
.gitattributes: *.nnex filter=lfs diff=lfs merge=lfs -text
git add evernote-backup.nnex: fatal: Cannot handle files this big
git lfs ls-files: Git can't resolve ref: "HEAD"
git lfs track: Listing tracked paths evernote-backup.nnex .gitattributes)
git lfs env:
WARNING: Reading LFS config from ".gitconfig", not ".lfsconfig". Rename to ".lfsconfig" before Git LFS v2.0 to remove this warning.
git-lfs/1.1.0 (GitHub; linux 386; go 1.5.1)
git version 2.1.4
LocalWorkingDir=/home/vitaly
LocalGitDir=/home/vitaly/.git
LocalGitStorageDir=/home/vitaly/.git
LocalMediaDir=/home/vitaly/.git/lfs/objects
TempDir=/home/vitaly/.git/lfs/tmp
ConcurrentTransfers=3
BatchTransfer=true
git config filter.lfs.smudge = "git-lfs smudge %f"
git config filter.lfs.clean = "git-lfs clean %f"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Run Code Online (Sandbox Code Playgroud)git-lfs: fatal: Cannot handle files this big (4.3G)
这是 i386 上的 32 位寻址问题,而 Gitgit-lfs根本无法寻址大于 4 GB 的文件。32 位无符号整数的最大值为4,294,967,295,约为 4 GB。
我们可以在 Git 源代码中看到这个错误是在哪里抛出的git-compat-util.h:
744 static inline size_t xsize_t(off_t len)
745 {
746 if (len > (size_t) len)
747 die("Cannot handle files this big");
748 return (size_t)len;
749 }
Run Code Online (Sandbox Code Playgroud)
我对内部工作原理了解不够,不知道git-lfs是否可以解决这个问题。
如果您可以选择在 64 位 ( x86_64) 系统而不是您正在使用的 32 位 ( i386) 系统上工作,那么这将解决您的问题。或者,您可能可以使用git-annex而不是git-lfs取得一些成功,但其他人也有类似的问题git-annex。错误报告中没有足够的详细信息来了解这是否仍然是 32 位系统上的问题。
不幸的是,您面临着 32 位硬件的常见限制,并且在这些系统上尝试处理大于 4 GB 的文件时会遇到许多问题。升级时间到了!