处理GitHub上的不允许100MB大文件上传

参考原文http://www.mamicode.com/info-detail-886410.html

今天初次使用GitHub,管理自己的项目代码。项目里用到了百度导航SDK,由于百度导航SDK大于100MB,所以在向GitHub提交代码时出错。具体信息如下:
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/BaiduNaviSDK/libbaiduNaviSDK.a is 102.68 MB; this exceeds GitHub‘s file size limit of 100.00 MB
remote: error: File XXX/XXX/BaiduNaviSDK/libbaiduNaviSDK.a is 102.68 MB; this exceeds GitHub‘s file size limit of 100.00 MB。这句话的意思是GitHub问件长度限制在100MB以内。它还提示我们到 (http://git.io/iEPt8g) 去如何处理上传大文件。开始我按照原文的操作,结果还是出现这个错误。后来我左思右想,是不是自己理解错了原文作者的意思。果然后来我在.gitinore这个文件中添加了忽略libbaiduNaviSDK.a 的命令,才成功将自己的文件上传。
具体操作如下:
当我们上传的项目中包含大于100MB的文件时。我们首先要在.gitinore中忽略它。
然后在最新的一次提交中,将该文件从本地仓库和远程仓库全部移除掉。如果这个文件很重要,要记得做一次备份。
如果这个文件是最近一次commit的,并且你还没有push到github
第一步:在.gitinore中忽略你需要忽略的大文件名字(跟忽略一般文件一样)

cat .gitinore
vi .gitinore
*.libbaiduNaviSDK.a

第二步:从本地仓库移除掉大文件

git rm --cached /User/xxx/xxx/xxx/libbaiduNaviSDK.a (/User/xxx/xxx/xxx/libbaiduNaviSDK.a换为自己要移除的文件即可)

第三步:提交我们的操作

git commit --amend -CHEAD

执行完这一步,libbaiduNaviSDK.a将从你的commit仓库中移除。
此时在向远程服务器push即可成功。

推荐阅读更多精彩内容