笔者我是在github上做了一个开源库(一个灵活配置的自定义相机库(拍照+录制视频))从而录制了一个大概200M+的gif文件,在commit完成了,push的时候 总是报错,大致信息如下:
remote: Resolving deltas: 100% (472/472), done.
remote: error: GH001: Large files detected.
You may want to try Git Large File Storage - https://git-lfs.github.com.
或
Total 3007 (delta 664), reused 0 (delta 0)
remote: error: GH001: Large files detected.
remote: error: Trace: 7b7de6b9372ee392e0f3961b05ea6f33
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File XXX/XXX/XXX is 234 MB; this exceeds GitHub‘s file size limit of 100.00 MB
remote: error: File XXX/XXX/XXX is 234 MB; this exceeds GitHub‘s file size limit of 100.00 MB。
上面错误的原因很好理解就是GitHub不允许直接上传大文件(超过100M)的文件到远程仓库,若要想继续提交可以尝试使用大文件支持库:https://git-lfs.github.com
LFS使用的简单步骤:
-
安装git - lfs到本机
我使用的mac,这里有三种安装方式,按自己的习惯来,我用的是Homebrew方式安装。
- 安装Git命令行扩展。只需要设置一次Git LFS。
在项目目录下,执行以下命令:
git lfs install
- 选择您希望Git LFS管理的文件类型(或直接编辑.gitattributes)。您可以随时配置其他文件扩展名。这一步成功后会生成一个gitattributes文件
git lfs track “* .gif” --这里的 “ *.gif "就是你要上传的大文件的路径
- 添加并commit gitattributes文件
git add .gitattributes
- 然后再添加大文件到本地缓存区
git add demo.gif
git commit -m "提交项目演示gif图"
git push
这里要注意一点:以上是官网步骤,我没这样走。如果你按照以上步骤走的话会还是会出现push fail(如下图)的情况,可参考我的解决办法。
参考解决办法:
1-2步没变,第3步我是生成.gitattributes后 add并且commit并且把.gitattributes文件push到远程分支,合并完成后,然后再add并且commit然后再push这个大文件.