У меня есть пустой git-репозиторий на Raspberry Pi, которым я пользуюсь. Нажимая на это сегодня, я получил это сообщение об ошибке:
Counting objects: 460, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (367/367), done.
remote: fatal: pack has bad object at offset 1641: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to 'ssh://christoph@111.111.111.111/media/christoph/afacc396-ec79-4920-9105-513ca4616c06/git/Documents'
Как видите, доступ к хранилищу осуществляется через ssh. (Я изменил IP-адрес.)
Я пробовал несколько раз, но получил ту же ошибку (даже с теми же номерами). Затем я решил создать новый репозиторий, удалив папку старого, создав папку с тем же именем и выполнив внутри нее git init --bare
.
Теперь я получаю эту ошибку при нажатии на нее:
Counting objects: 3129, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2265/2265), done.
remote: fatal: pack has bad object at offset 426983445: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to 'ssh://christoph@111.111.111.111/media/christoph/afacc396-ec79-4920-9105-513ca4616c06/git/Documents'
В чем проблема и как мне заставить его работать снова?
Я запускаю git версии 1.9.1 на 64-битной машине Linux с ядром 3.19.
Обновление с дополнительным выводом:
laptop-14-04:~/Documents Container$ GIT_TRACE=1 git push --porcelain --progress --recurse-submodules=check origin refs/heads/master:refs/heads/master
trace: built-in: git 'push' '--porcelain' '--progress' '--recurse-submodules=check' 'origin' 'refs/heads/master:refs/heads/master'
trace: run_command: 'ssh' 'christoph@111.111.111.111' 'git-receive-pack '\''/media/christoph/afacc396-ec79-4920-9105-513ca4616c06/git/Documents'\'''
christoph@111.111.111.111's password:
trace: run_command: 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
trace: exec: 'git' 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
trace: built-in: git 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
Counting objects: 3383, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2257/2257), done.
remote: fatal: pack has bad object at offset 426983770: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to 'ssh://christoph@111.111.111.111/media/christoph/afacc396-ec79-4920-9105-513ca4616c06/git/Documents'
laptop-14-04:~/Documents Container$ git count-objects -Hv
count: 0
size: 0 bytes
in-pack: 3452
packs: 1
size-pack: 13.03 GiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes
laptop-14-04:~/Documents Container$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (3452/3452), done.
laptop-14-04:~/Documents Container$ git gc
Counting objects: 3452, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2254/2254), done.
Writing objects: 100% (3452/3452), done.
Total 3452 (delta 915), reused 3452 (delta 915)
laptop-14-04:~/Documents Container$ git push --porcelain --progress --recurse-submodules=check origin refs/heads/master:refs/heads/master
christoph@111.111.111.111's password:
Counting objects: 3383, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2257/2257), done.
remote: fatal: pack has bad object at offset 426983770: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to 'ssh://christoph@111.111.111.111/media/christoph/afacc396-ec79-4920-9105-513ca4616c06/git/Documents'
Теперь я установил новую ОС (Ubuntu 16.04 64 bit, работающая под ядром 4.4.0-21), и теперь git версии 2.7.4. Я не копировал старый репо в новую систему, а только скопировал его содержимое и создал новый репо. Кроме того, я удалил репо на своем Raspberry Pi и создал новое голое репо на нем. Теперь я использовал SmartGit для добавления файлов в репозиторий и для попытки его подтолкнуть. Тем не менее, проблема все еще существует:
Это работает, если я создаю пустой репозиторий локально, добавляю его как удаленный, а затем нажимаю на него. Затем я могу перенести каталог репозитория в Raspberry Pi и использовать его как удаленный через ssh. Таким образом, похоже, что проблема возникает только при передаче большого количества данных (или, возможно, больших коммитов) по сети.