处理GitHub不允许上传大于100M文件问题

处理GitHub不允许上传大于100M文件问题:
1、报错:
自己的项目的版本控制用的是Git,代码仓库在github托管。项目里用到了百度导航SDK,由于百度导航SDK有了新版本,于是就更新到了新版本,更新好了之后想把代码push到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
To https://github.com/XXX/XXXX.git。

2、原因:
意思是有大文件,更多信息可到 http://git.io/iEPt8g 查看,文件 libbaiduNaviSDK.a 的大小超过了GitHub限制的100M大小。
想要push,必须把这个文件移除,可是要怎么移除呢?开始我是想着直接删除掉libbaiduNaviSDK.a,结果不行,还是会报上面的错,于是我又把libbaiduNaviSDK.a放到忽略文件里,结果还是不行,还是说有大文件,报同样的错。这下只能老老实实的看官方的解决办法了,于是就打开 http://git.io/iEPt8g 老老实实的研究了一番。大意是说为了便于管理代码库和方便合作伙伴们使用,当你push50M以上的文件时github将会警告,当push100M以上文件,就直接拒绝你的push,要想push必须把该文件从本地仓库和远程仓库全部移除掉。这个移除会永久性的从本地git和github里移除,如果这个文件很重要,要记得做一次备份。

3、解决办法:
下面进入具体操作,如果这个文件是最近一次commit的,并且你还没有push到github
(1)那么第一步输入命令 :

cd /Users/Dora/Desktop/XXX(cd后面的这个路径要换成你自己项目的路径)

(2)然后第二步输入命令 :

git rm --cached /Users/Dora/Desktop/XXX/XXX/libbaiduNaviSDK.a(加下划线部分是你自己的要移除的文件的路径)

注:一般执行这一步会出现下面这样的报错

not removing 'XXX' recursively without -r 

解决办法:执行下面的命令

git rm -r --cached /Users/Dora/Desktop/XXX/XXX/libbaiduNaviSDK.a 

(3)第三步输入命令:

 git commit --amend -CHEAD

执行完这步后,这个大文件将会从你的commit记录里移除,并且以后commit都将不会再把它commit了,这时候就可以git push把本地代码push到github上了。

4、注意:
注意:这里可能遇到输入

git rm --cached /Users/Dora/Desktop/XXX/XXX/libbaiduNaviSDK.a

命令后说找不到你要删除的文件的问题,出现这个问题的原因是你要删除的文件路径名没写对,一定要仔细检查,确保要删除的文件的路径是正确的。

5、仍然报错的解决办法:
如果做了这几步你push的时候还是报和开始的时候一样的错,那说明这个文件你不是最近一次commit时添加的,而是在之前commit过很多次了,这就需要把关于这个文件的所有历史commit记录全部清除掉,这时候我们就需要用到一个叫BFG的工具。我们要到 https://rtyley.github.io/bfg-repo-cleaner/#download 这个网站去下载并学习如何使用这个工具,使用如下:
(1)首先先得把这个软件下载下来,双击它,如果你的电脑没有java的SDK,按照提示安装好,否则BFG将运行不了。
(2)好了之后,我们要cd进BFG文件所在目录,然后操作如下:

第一步:输入命令

java -jar bfg.jar --no-blob-protection --strip-blobs-bigger-than 50M my-repo.git 

第二步:

cd my-repo.git 

第三步:

git reflog expire --expire=now --all && git gc --prune=now --aggressive

第四步:

git push

到此大功告成。你的commit历史里所有大于50M的文件的commit全部被清除,这样你就可以push到github上了。

6、继续注意:
这里可能遇到输入命令

java -jar bfg.jar **--strip-blobs-bigger-than 50M** my-repo.git

后bfg运行不成功的问题,原因是java -jar bfg.jar这个命令必须要在bfg.jar所在目录下运行才行,否则系统将不知道bfg.jar文件在哪里,所以执行不成功。
所以我们要先cd到bfg.jar所在目录,然后在执行

ava -jar bfg.jar **--strip-blobs-bigger-than 50M** my-repo.git

命令。对于不熟悉命令行的人来说最容易犯这些错误了。

【转载自:当天真遇到现实

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容