Table of Contents

一. 上传git出错

二. git基本概念

三. 解决

参考链接


一. 上传git出错

error: remote unpack failed: error Object too large (136,179,501 bytes), rejecting the pack. Max object size limit is 104,857,600 bytes.
 Please refer to http://x.code.com/Code/Git/blob/master/help/solutions/lfs/use_lfs_transfer.md
To https://git.code.com/xxxsun/bspcloud_docs
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'https://git.code.com/xxxsun/bspcloud_docs'

分析上述报错信息,服务器限制上传的对象大小限为100M,但当前对象大小129M,超出系统限制而出错。

二. git基本概念

Git 由工作区、暂存区、版本库三部分组成。

执行 git add 时暂存区的目录树被更新,工作区修改内容被记录在对象库中,暂存区目录树被更新。
当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。

Git 目录结构:

index       暂时区,索引
objects    对象库
HEAD     HEAD指针,指向当前分支
refs/refs/heads/master  最近一次commit id

三. 解决

通过上述分析,需直接剔除那个大文件,再重新上传。但此时暂存区已经被修改,无法执行git push,需要重建目录树。

查看对象库:

ls -l .git/objects/pack
-r--r--r--  1 xxxsun  staff    54K Feb 20 20:30 pack-f49501cbd6851d3cbdf8ad44028263e2b1526b32.idx
-r--r--r--  1 xxxsun  staff   118M Feb 20 20:30 pack-f49501cbd6851d3cbdf8ad44028263e2b1526b32.pack

查看最大的N个文件sha1:

git verify-pack -v .git/objects/pack/pack-f49501cbd6851d3cbdf8ad44028263e2b1526b32.idx | sort -k 3 -n | tail -n 10
5f466dec2fc24624d09790c369e5ad1e5343ec61 blob   8377466 8351646 110662168
8c915661c66e9b3a9ec9e17c9b55fb4bdaf152fc blob   9162783 6558772 101211526
8533ba160d286563df5b7bd774b2814a46b64857 blob   20848460 16287722 8254071
0b98ac11ba523cc7c58459548dc52c68135e3862 blob   20876763 3485525 94296622
b56c8f61a3c9f153a9064ef3c888fb6051307212 blob   39627800 25196894 69099728

查看sha1对应文件名:

git rev-list --objects --all | grep b56c8f61a3c9f153a9064ef3c888fb6051307212
b56c8f61a3c9f153a9064ef3c888fb6051307212 产品文档/xxx系统-产品团队补充部分v2.2.pdf

发现比较大的几个文件均为*.pdf,从暂存区删除:

$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch *.docx' -- --all
$ rm -Rf .git/refs/original
$ rm -Rf .git/logs/
$ git gc --aggressive --prune=now

验证:
git count-objects -v

重新提交成功

但是上面的步骤过于繁琐,只是为了学习git工作原理。不得不说git支持命令之丰富。最简洁的方式 git clone 主工程,过滤比较大的文件后再上传。

参考链接

https://github.com/18F/C2/issues/439

Git提交单个文件过大,git error: remote unpack failed:error Object too large相关推荐

  1. GitBlit error: remote unpack failed: error Missing tree

    出现此原因为GitBlit bug导致,可按照下方办法临时解决. 在服务端找到 gitblit文件夹-data-defaults文件 修改git.checkReferencedObjectsAreRe ...

  2. error: remote unpack failed: unpack-objects abnormal exit

    error: remote unpack failed: unpack-objects abnormal exit 属于git内存泄露,文件太大导致提交不成功,可以选择分批次提交代码

  3. git push 报错Push rejected、 remote unpack failed 、unpacker error、 failed to push some refs to

    git push 报错Push rejected. remote unpack failed .unpacker error. failed to push some refs to 1.error: ...

  4. git让单个文件回滚到指定版本

    https://blog.csdn.net/fsgsggd/article/details/79875035 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITey ...

  5. git merge 单个文件

    在使用git 进行项目代码管理的时候,我们通常会有多个分支,例如A,B两个分支,我们队A分支做了大量的修改,修改完成之后只想把A分支上的a文件合并到B分支上面,而不动其他修改了的文件.此时应该如何操作 ...

  6. 解决git上传文件出错[rejected] master -> master (fetch first) error: failed to push some refs to ‘

    如何解决git上传文件出错[rejected] master -> master (fetch first) error: failed to push some refs to ' git p ...

  7. ecplise git修改提交信息_eclipse git提交忽略文件配置

    eclipse git提交忽略文件配置 一.修改.gitgnore文件 /target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_genera ...

  8. Git合并单个文件和[y,n,q,a,d,/,K,j,J,g,e,?]

    Git合并单个文件和[y,n,q,a,d,/,K,j,J,g,e,?] 前言 今天想要合并两个分支的同一个文件,查了网上一些资料,将A分支的a文件合并到B分支的a文件上.可以通过以下方式合并 git ...

  9. git提交代码时出现错误:error : unpack failed : error Missing commit XXX,

    Git 提交出错 git提交代码时出现错误:error : unpack failed : error Missing commit 384ccb27185a68ec9c0d0ce948e7432d6 ...

最新文章

  1. Linux 命令(记录)
  2. 今天介绍一款强大的服务器开发工具(JRebel)
  3. 广佛肇城轨年内通车 佛山西站预计2017年中通车
  4. Js+Css打造的红色经典伸缩菜单代码
  5. git 短写设置_如何在短短几分钟内设置一个Git客户端
  6. 《你好李焕英》票房反超《唐探3》 成中国影史票房第五
  7. 对方启用和留言是什么意思_男子花八万元装修,装修到一半要求加价,对方:补给我一万两天就能装好...
  8. 循环结果添加到集合_Excel VBA 8.4 Python中有集合直接获取唯一值,那Exce中可以吗?...
  9. 增强现实:原理算法与应用 第一章增强现实概论笔记
  10. 如何编译Linux内核源码?
  11. c语言函数名合集,C语言内部函数名.doc
  12. 软件工程知识点总结——第一、二部分
  13. 几何公差基础知识之圆度
  14. 计算机原理八字,讲解八字理论
  15. 2021年安全类公众号合集
  16. word中交叉引用多篇参考文献格式[1-2]操作以及显示错误问题
  17. 【苏宁消费金融对接苏宁联盟链 打造金融区块链应用案例】
  18. 12-Gateway新一代网关
  19. Web应用开发技术笔记
  20. 自创文字小游戏《人类末日·丧尸危机》

热门文章

  1. 怎么确定步进电机的步距角
  2. 2020清华大学计算机系夏令营机试
  3. 华为 WLAN基本配置
  4. 30个新职业薪酬出炉,程序员霸屏
  5. android百度地图画圆,使用百度地图Api,在地图上画圆形区域
  6. 7、【STM32】独立看门狗和窗口看门狗(IWDG、WWDG)实验
  7. win10自带的 快速截图功能
  8. 大数据鹏飞时代,这些商机你掌握了吗
  9. CRMEB知识付费系统安装搭建【常见问题-14.安装无法修改写入权限】
  10. shell导出txt乱码_【转】Shell乱码文件中的控制字符处理