2014-12-26 24 views
8

Git hat mir ein schönes Weihnachtsgeschenk ... Ich versuche git push eine Reihe von Commits, wie 6 GB. Und ich bekomme folgende Fehlermeldung:Git tödlich: Pack hat schlechtes Objekt bei Offset X: blasen zurück -5

-Counting objects: 525, done. 
Delta compression using up to 24 threads. 
Compressing objects: 100% (474/474), done. 
fatal: pack has bad object at offset 3453162391: inflate returned -5 
error: pack-objects died of signal 13 
error: failed to push some refs to ....git 

Was bedeutet das und wie ist es behoben? Von Google kann ich sagen, dass es etwas mit der Größe dessen zu tun hat, was ich versuchen möchte.

Dies geschah während des Schreibens.

+0

Haben Sie versucht, mit '--no-thin' zu pushen? – kaman

+0

Ja, leider hat das nicht geholfen. –

+0

Können Sie versuchen, ein paar Commits (wie HEAD ~ 3) zu schieben und sehen, ob das hilft? – VonC

Antwort

2

Basierend auf Ihren Offset, es sieht aus wie Sie versuchen, einige wirklich große Objekt zu schieben (Offset 3453162391 = ~> = 3 GB), so zlib scheiterte auf das Aufblasen/Komprimieren des Objekts, da es nicht genug Platz war in der Ausgabepuffer (Fehler: Z_BUF_ERROR).

Dies könnte mit vorübergehendem Speichermangel oder einigen Puffergrenzen zusammenhängen. Im Grunde wird versucht, so viele Eingaben wie möglich mit der verfügbaren Ausgabe zu verarbeiten, andernfalls wird Z_BUF_ERROR zurückgegeben. Siehe: zlib inflate returning a buffer error.

Sie sollten erneut versuchen zu sehen, ob das Problem reproduziert werden kann.

Wenn das Problem wiederholbar ist, dann versuchen Sie zu:

  • Vermeiden Sie große Dateien in Git Repository schieben, wurde Git entwickelt, um die Quellcode-Dateien zu verfolgen, nicht sehr große Dateien (6GB),

  • erhöhen git message size auf Ihrem Client http.postBuffer, z

    git config http.postBuffer 134217728 # =~ 128MB 
    
  • Verwendung einige alternative Client, die größer Blobs ignorieren können, wie bfg, z.B.

    java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git 
    
  • das Objekt entfernen, die das Problem verursacht (git gc?).

Andere mögliche Probleme könnten gehören:

Weitere Messungen finden Sie in diesem Post: “pack has bad object” when pushing to remote.