1 、看哪個(gè)文件占的大
報(bào)錯(cuò)信息:
Counting objects: 15, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (15/15), 382.90 MiB | 1.88 MiB/s, done.
Total 15 (delta 8), reused 0 (delta 0)
remote: Resolving deltas: 100% (8/8), completed with 7 local objects.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://g
it-lfs.github.com.
remote: error: Trace: 32cfdd82801eb81f072baeca0f5ca78b
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File resultDataset/resultDataset/gplus_combined.csv is 1279.62 MB; this exceeds Git
Hub's file size limit of 100.00 MB
To git@github.com:LiXiaoRan/dataHandle.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@github.com:LiXiaoRan/dataHandle.git'
注意這一句:remote: error: File resultDataset/resultDataset/gplus_combined.csv is 1279.62 MB; this exceeds Git可以發(fā)現(xiàn)务嫡,是gplus_combined.csv 文件太大,超過了100Mb的限制漆改。那么要處理的就是這個(gè)文件了心铃。
2 、重寫commit挫剑,刪除大文件
git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch resultDataset/resultDataset/gplus_combined.csv' --prune-empty --tag-name-filter cat -- --all
需要注意的是去扣,此處可能會(huì)報(bào)錯(cuò)
出現(xiàn)這個(gè)錯(cuò)誤
Cannot rewrite branches: You have unstaged changes
解決方案:執(zhí)行g(shù)it stash即可解決。
3 樊破、推送修改后的repo
以強(qiáng)制覆蓋的方式推送你的repo, 命令如下:
git push origin master --force
4愉棱、 清理和回收空間
雖然上面我們已經(jīng)刪除了文件, 但是我們的repo里面仍然保留了這些objects, 等待垃圾回收(GC), 所以我們要用命令徹底清除它, 并收回空間,命令如下:
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
徹底解決哲戚。
如果上述方法不管用
可以按照以下方法:
1奔滑、移除錯(cuò)誤緩存
首先應(yīng)該移除所有錯(cuò)誤的 cache,對(duì)于文件:
git rm --cached path_of_a_giant_file
對(duì)于文件夾:
git rm --cached -r path_of_a_giant_dir
例如對(duì)于我的例子就是這樣的:
git rm --cached resultDataset/resultDataset/gplus_combined.csv
2顺少、重新提交:
編輯最后提交信息:
git commit --amend
修改 log 信息后保存返回朋其。
重新提交
git push