git使用实录 添加过大文件导致提交问题解决

前言

开发中遇到一个比较蛋疼的问题,因为新公司的项目是直播类型,集成网易的播放器SDK,静态库文件大小103MB超过了git提交文件的限制,且已经被我添加到commit记录中,等反应过来已经为时已晚.
不管是回滚还是删除对应文件亦或者添加忽略,提交时都会报文件过大的错误,记录一下自己解决的方法.
最后解决办法是先获取所有提交记录中大文件的列表,然后进行删除,因为涉及到对以往提交记录的修改,其实还是有一定风险的.

过程

1.获取大文件列表

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

输出:

66b9f17406fb109070c29a611f2b9e37cce5eecb NELivePlayer/libs/libNELivePlayer.a
d62d664624dc4668bf02fa307a4b7877714cdad5 Pods/PLPlayerKit/Pod/Library/lib/libPLPlayerKit.a
a03e179bd2a474326afd6f594de933aa9bd9b9f0 Pods/PLPlayerKit/Pod/Library/lib/libavcodec.a
a44851e9099ceaf519e595cbb416d267ee4bbb18 Pods/PLPlayerKit/Pod/Library/lib/libcrypto.a

libNELivePlayer.a就是报错的罪魁祸首

删除所有带有libNELivePlayer.a文件的记录

git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch NELivePlayer/libs/libNELivePlayer.a' --tag-name-filter cat -- --all

执行完 再回到sourcetree,可以看到含有libNELivePlayer.a的提交记录都已经不见了,重新点提交,问题解决.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,932评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,301评论 25 708
  • 刚刚看了一个微博上蹦出来的电影的影评 ... 有一句话: 人性中的动物性是“心魔”,而理性是人性中的“善良天使”。...
    六六六六六六六六六阅读 442评论 0 0
  • 昨天去给闺蜜帮忙,吃饭的时候我对她抱怨道:我妈和小姨在催我毕业就结婚,但是这明显不可能嘛! 瑶说:我小姨一直在怂恿...
    猫咪家的小豆豆阅读 688评论 0 5
  • 文/季余星 我们为什么总是不会搭配呢?有三个原因: 第一个原因就是,我们穿的是西式的服装,却不理解西式的服装文化。...
    木乌阅读 1,598评论 7 5