自己的項目的版本控制用的是Git,代碼倉庫在github托管。項目里用到了IJKMediaFramework 想把代碼push到github上,結果出錯了,被拒絕,具體信息是:
Total 324 (delta 78), reused 0 (delta 0)
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 812007a278d0a89c0705b8c456066938
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File MiaoShow/Classes/Frameworks/IJKMediaFramework.framework/IJKMediaFramework is 112.62 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/XXX/XXXX.git。意思是有大文件,更多信息可到http://git.io/iEPt8g查看,文件IJKMediaFramework的大小超過了GitHub限制的100M大小。想要push,必須把這個文件移除,可是要怎么移除呢?開始我是想着直接刪除掉IJKMediaFramework,結果不行,還是會報上面的錯,於是我又把libbaiduNaviSDK.a放到忽略文件里,結果還是不行,還是說有大文件,報同樣的錯。這下只能老老實實的看官方的解決辦法了,於是就打開http://git.io/iEPt8g老老實實的研究了一番。大意是說為了便於管理代碼庫和方便合作伙伴們使用,當你push50M以上的文件時github將會警告,當push100M以上文件,就直接拒絕你的push,要想push必須把該文件從本地倉庫和遠程倉庫全部移除掉。這個移除會永久性的從本地git和github里移除,如果這個文件很重要,要記得做一次備份。下面進入具體操作。如果這個文件是最近一次commit的,並且你還沒有push到github,那么第一步輸入命令 cd /Users/Dora/Desktop/XXX(cd后面的這個路徑要換成你自己項目的路徑),然后第二步輸入命令 git rm --cached /Users/Dora/Desktop/XXX/XXX/IJKMediaFramework(加下划線部分是你自己的要移除的文件的路徑),第三步輸入命令 git commit --amend -CHEAD,執行完這步后,這個大文件將會從你的commit記錄里移除,並且以后commit都將不會再把它commit了,這時候就可以git push把本地代碼push到github上了。
注意:這里可能遇到輸入git rm --cached /Users/Dora/Desktop/XXX/XXX/libbaiduNaviSDK.a命令后說找不到你要刪除的文件的問題,出現這個問題的原因是你要刪除的文件路徑名沒寫對,一定要仔細檢查,確保要刪除的文件的路徑是正確的。