Saya memiliki repositori telanjang di Raspberry Pi saya yang hanya saya gunakan. Saat mendorongnya hari ini, saya menerima pesan kesalahan ini:
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'
Seperti yang Anda lihat, repositori diakses melalui ssh. (Saya mengubah alamat IP.)
Saya mencoba beberapa kali tetapi mendapat kesalahan yang sama (bahkan dengan nomor yang sama). Kemudian saya memutuskan untuk membuat repositori baru dengan menghapus folder yang lama, membuat folder dengan nama yang sama, dan mengeksekusi git init --bare
di dalamnya.
Sekarang saya mendapatkan kesalahan ini ketika mendorongnya:
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'
Apa masalahnya dan bagaimana saya membuatnya bekerja lagi?
Saya menjalankan git versi 1.9.1 pada kernel 3.19 mesin 64 bit Linux.
Memperbarui dengan output tambahan:
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'
Saya sekarang menginstal OS baru (Ubuntu 16.04 64 bit menjalankan kernel 4.4.0-21-generik) dan git sekarang versi 2.7.4. Saya tidak menyalin repo lama ke sistem baru tetapi sebaliknya hanya menyalin kontennya dan membuat repo baru. Selanjutnya saya menghapus repo pada Raspberry Pi saya dan membuat repo telanjang baru di atasnya. Saya sekarang menggunakan SmartGit untuk menambahkan file ke repo dan untuk mencoba mendorongnya. Namun, masalahnya masih ada:
Ini berfungsi jika saya membuat repositori telanjang secara lokal, menambahkannya sebagai remote, dan kemudian mendorongnya. Saya kemudian dapat mentransfer direktori repositori ke Raspberry Pi dan menggunakannya sebagai remote via ssh. Jadi sepertinya masalah hanya terjadi ketika mendorong banyak data (atau mungkin komitmen besar) melalui jaringan.
git fsck --full
dan git gc
? Apakah ini membantu? Lakukan juga fsck
pada perangkat penyimpanan Raspberry Anda dan lakukan beberapa pengujian memori. Coba jalankan perintah berikut dengan GIT_TRACE=1
.
du -hs .git/objects/pack
)? Apakah Anda menggunakan semacam VPN atau proxy?
GIT_TRACE=1
.