git error: remote unpack failed

2024-01-25 17:32
文章标签 failed error git unpack remote

本文主要是介绍git error: remote unpack failed,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 error: remote unpack failed的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/644036

相关文章

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

Python struct.unpack() 用法及常见错误详解

《Pythonstruct.unpack()用法及常见错误详解》struct.unpack()是Python中用于将二进制数据(字节序列)解析为Python数据类型的函数,通常与struct.pa... 目录一、函数语法二、格式字符串详解三、使用示例示例 1:解析整数和浮点数示例 2:解析字符串示例 3:解

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

解决Maven项目报错:failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题

《解决Maven项目报错:failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题》这篇文章主要介... 目录Maven项目报错:failed to execute goal org.apache.maven.pl

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提