2019年3月18日 星期一

[筆記][Git/Github][存參] 檔案過大 error: File ******** is 527.84 MB; this exceeds GitHub's file size limit of 100.00 MB

最近開始把一些時作放到github上
今天遇到了一個問題
就是我的pretrainied model太大了沒辦法push
但是刪掉了之後
error message還是一直出現

後來搜尋了解決辦法
這裡筆記下來
應該會記的比較清楚
(雖然之後會注意檔案大小不要再亂上傳一通)

Error message:
$ git push origin master
Enumerating objects: 20, done.
Counting objects: 100% (20/20), done.
Delta compression using up to 8 threads
Compressing objects: 100% (14/14), done.
Writing objects: 100% (17/17), 489.89 MiB | 14.18 MiB/s, done.
Total 17 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 4d46485696166b616f2204cef94eef80
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File xxxxx is 527.84 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/j6079633/CrossModalDistillation_Keras.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/j6079633/CrossModalDistillation_Keras.git'

Solution:
$ git filter-branch --tree-filter 'rm -rf path/to/your file' HEAD

這一個指令是過濾過去提交紀錄中超出限制大小的檔案移除。

結束後再下一個push的指令即可

但是因為前面整個流程我亂試一通變得有點亂
所以我有先下一個pull rebase的指令

$ git pull --rebase

如果是只有自己的project
很清楚明白有哪些地方被修改的話
可以使用force pull

$ git push -f

最後進行push就可以了

git 是專案管理滿重要的工具
CP值滿高的技能值
雖然大學時有稍微學一下但後來不常用就忘了
不過現在撿回來磨一下應該還來得及><

參考資料:

https://andy6804tw.github.io/2018/12/09/git-exceeds-size/

https://gitbook.tw/chapters/github/fail-to-push.html

https://blog.yorkxin.org/2011/07/29/git-rebase.html