错误:远程解压缩失败:完全读取包头之前的eof

Bla*_*ial 2 git

在此之前,我遇到了问题,error: object file is empty导致笔记本电脑突然关闭。我固定有这个。我的本地存储库是固定的,我尝试将其推送到远程主机。但是我有这样的问题

$ git push -u origin master
Counting objects: 26, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (22/22), done.
fatal: unable to read c779d43453f63d871ba2a079b79f04558d9b0920
error: remote unpack failed: eof before pack header was fully read
error: failed to push some refs to 'git@bitbucket.org:xxxx/xxxx.git'

Run Code Online (Sandbox Code Playgroud)

如何修复我的远程仓库?我无法推送我的新提交导致远程仓库损坏

如何修复unable to read c779d43453f63d871ba2a079b79f04558d9b0920远程仓库?

小智 9

我在git 2.19.0上遇到了类似的错误,此错误已通过更新到git 2.20.1而得到修复。我认为在我的情况下,git在尝试压缩特定对象时崩溃了(它只能达到“压缩对象:31%”),然后服务器由于发送过程崩溃而返回了该错误。

我希望这可以帮助别人。

  • 更新git也为我解决了该问题,但对我来说是2.20.1至2.21.0。这使我相信这不是更新中的修复程序,而是在更新过程中重置的设置或清除的缓存。 (2认同)

小智 9

我在许多存储库中都发生了这种情况,我最终将其追溯到存储在我的 Dropbox 内的存储库并应用了“选择性同步”。因此,该.git文件夹在本地并不完全可用。

进入finder中的文件夹并选择选择性同步>本地修复它。

父文件夹被标记为同步,但 Dropbox 似乎认为隐藏文件夹可能并不重要。


Jul*_*ien 9

我在共享主机上,第一次尝试推送 master 时遇到了同样的问题。

但这确实奏效了:

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"
Run Code Online (Sandbox Code Playgroud)

  • 为我工作。知道什么可能会导致需要这个吗?这是否表明存储库中某个地方有一个大文件?(如果是这样,我需要在它引起更大问题之前将其删除) (2认同)

obo*_*zat 8

它发生在 macOS Big Sur 上,升级我的 git 版本修复了它。初始版本为 2.23.0,升级到 git 版本 2.29.2。


小智 7

git fsck
Run Code Online (Sandbox Code Playgroud)

成功了并为我解决了这个问题


Nej*_*ono 5

我昨天也遇到了同样的问题,我的笔记本电脑意外关闭。所以我不得不重新创建git。

首先,从目录中删除.git文件夹。

rm -rf .git
Run Code Online (Sandbox Code Playgroud)

然后创建更新git。

git init
Run Code Online (Sandbox Code Playgroud)

所有跟踪都将变成新的,因此您必须提交所有新更改并添加远程存储库

git remote add origin <repo URL>
Run Code Online (Sandbox Code Playgroud)

例如,如果您在“开发”分支。继续创建一个开发分支

git branch development && git checkout development
Run Code Online (Sandbox Code Playgroud)

现在切换到开发分支后,从远程分支拉取。

git pull origin development --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)

你可能会遇到冲突,解决它们,然后你就可以继续前进了。


tor*_*rek 4

您的本地存储库修复,因为此消息:

fatal: unable to read c779d43453f63d871ba2a079b79f04558d9b0920
Run Code Online (Sandbox Code Playgroud)

来自您自己的 Git,同时它正在尝试打包数据以发送到远程。(知道这一点的方法是它没有前缀remote:。)其余错误:

error: remote unpack failed: eof before pack header was fully read
error: failed to push some refs to 'git@bitbucket.org:xxxx/xxxx.git'
Run Code Online (Sandbox Code Playgroud)

是这样做的后果。

此问题不会以任何方式影响其他存储库,因此您可以创建另一个存储库的新克隆,并尽一切努力从不完全固定的存储库中提取有用的数据以添加到新的(良好)克隆中。