存在的问题是:本地的gitlab server不存在大文件的限制,历史上使用了的大文件都能正常push。但是github公共库对大文件有100M的限制,大于100M的push是失败的。 解决方法是使用git lfs,步骤:
- 删除repo中的大文件
rm -f bigfilename
git add bigfilename
git commit -m "delete big file first"
- 清除历史,仅当前分支,所有分支加--all
git filter-branch --index-filter 'git rm --cached --ignore-unmatch bigfilename' HEAD
- 使用lfs重建文件
git lfs track bigfilename
git add .gitattributes
git add bigfilename
git commit -m "add big file use lfs"
git lfs ls-files
- push
因改变了历史,需要远端分支unprotect
git push --force origin master