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


【先上图】
在这里插入图片描述

刚准备把一个新的本地分支提交到远程仓库,猝不及防的报了个错(莫名其妙。。。)

先是在idea上直接push,提示Push rejected,推送失败,idea只会提示个Push rejected,并没有其他的提示信息

然后就只能敲git命令(我在期望它直接成功。。),果然,报错了,如上图

大致看了下,有三个信息:
1.error: remote unpack failed: error Missing blob
2.error: failed to push some refs to 
3.! [remote rejected]  xxxx (unpacker error)

1.error: remote unpack failed: error Missing blob

第一个报错信息百度了一下,原因在与本地仓库过大,需要使用命令 git gc进行清理

原因在于:Git的底层并没有采用 CVS、SVN 底层所采用的那套增量式文件系统,而是采用一套自行维护的存储文件系统。当文件变动发生提交时,
该文件系统存储的不是文件的差异信息,而是文件快照,即整个文件内容,并保存指向快照的索引。这种做法,提高 Git 分支的使用效率;但也容易
导致代码仓库中内容重复程度过高,从而仓库体积过大。当遇到这种情况时,或者需要将仓库推送到远程主机时,就需要Git中的gc(garbage 
collect)功能,也就是垃圾回收功能。
————————————————
版权声明:本文为CSDN博主「lihuanshuai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lihuanshuai/article/details/37345565

我就参照上面文章进行了git gc。如图:

在这里插入图片描述
然后我继续执行了命令git push origin xxx(祈祷能成功~~)

结果还是失败,报一样的错误,就像图1

没办法只能看下一个提示信息

2.error: failed to push some refs to

网上报这错的基本上都是提交到github中且没有README.md文件的情况,建议我进行pull操作。
但是我这是pull完之后新迁的本地分支,准备推新分支到远程仓库,不存在远程仓库中代码版本与本地不一致的情况。

这个信息对我没啥用,看下一条吧。。。

3. [remote rejected] xxxx (unpacker error)

一:权限问题这个问题查资料发现大部分都是权限问题,需要所有者给你开权限,但我权限是有的(应该)

二:还有就是 疑似某个 git 对象和远程仓库不一致了,远程仓库拒绝了推送。造成这个问题在于–thin 选项,这个选项是 git push 默认的选项,它会向远程仓库推送时进行优化,以将所发送的包降低到最小,它会把发送时忽略本地仓库和远端仓库中共有的部分,只发送不同的部分。
所以推送时可以 去掉这个参数进行推送:–no-thin

参考git常见问题 的git push 案例一

于是我就继续敲命令进行尝试:
git push --no-thin origin xxx

这次终于没问题,成功推送的远程仓库!!!

总结:

遇到上述问题首先
1.查看自己是否有推送权限,没有先找所有者开通权限(不然白忙活)
2.是否已经进行git pull操作,没有先pull
3.git gc 先清一清垃圾再说,说不定就没问题了(笑~)
4.–no-thin,提交时去掉优化,直接提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值