29 Stimmen

Die Größenbeschränkung für die Github-Datei wurde am 18.06.13 geändert. Kann jetzt nicht pushen

Wie ändert sich dies ab dem 18. Juni 2013 auf mein bestehendes Repository mit einer Datei, die dieses Limit überschreitet? Ich habe vor 2 Monaten zuletzt mit einer großen Datei gepusht.

Ich habe eine große Datei lokal entfernt, kann aber jetzt nichts pushen. Ich erhalte einen "Remote-Fehler"... remote: Fehler: Datei cron_log.log ist 126,91 MB groß; dies überschreitet das Dateigrößenlimit von 100 MB von GitHub.

Nach dem ursprünglichen Push habe ich die Datei zu .gitignore hinzugefügt... Aber sie existiert immer noch im Remote (Origin).

Sie sollte durch die lokale Entfernung auch am Ursprungsort (Github) gelöscht werden, oder? ... aber ... ich kann nicht pushen, weil es eine Datei auf Github gibt, die das Limit überschreitet...

https://github.com/blog/1533-new-file-size-limits

Dies sind die von mir ausgeführten Befehle sowie die Fehlermeldungen..

git add .
git commit -m "cron\_log.log löschen"
git push origin master

remote: Fehlercode: 40bef1f6653fd2410fb2ab40242bc879
remote: Warnung: Fehler GH413: Große Dateien erkannt.
remote: Warnung: Siehe http://git.io/iEPt8g für weitere Informationen.
remote: Fehler: Datei cron\_log.log ist 141,41 MB groß; dies überschreitet das Dateigrößenlimit von 100 MB von GitHub.
remote: Fehler: Datei cron\_log.log ist 126,91 MB groß; dies überschreitet das Dateigrößenlimit von 100 MB von GitHub.

Zu https://github.com/slinds(hier weggelassen)/linexxxx(hier weggelassen).git
 ! \[rejected\] master -> master (Hook vor Empfang abgelehnt)
Fehler: Einige Verweise konnten nicht gepusht werden zu 'https://github.com/slinds(hier weggelassen)

Dann habe ich Dinge wie

git rm cron_log.log
git rm --cached cron_log.log

Gleicher Fehler.

26voto

Chronial Punkte 59424

Wie rlb.usa bemerkt hat, hat Github eine Dateigrößenbeschränkung hinzugefügt, die verhindert, dass Sie Dateien > 100 MB hochladen. Sie haben versucht, die Datei in einem neuen Commit zu entfernen und diesen zu pushen. Das scheitert, weil Sie nicht nur diesen letzten Commit pushen, sondern auch drei andere. Diese drei Commits enthalten Versionen von cron_log, die 141 MB bzw. 126 MB groß sind. Sie lassen Ihren Push fehlschlagen.

Um das zu beheben, haben Sie zwei Optionen:

  • Führen Sie git rebase -i origin/master aus, setzen Sie jeden Commit auf bearbeiten und entfernen Sie die Datei in jedem mit git commit --amend.
  • Verwenden Sie den BFG Repo-Cleaner, um Ihre gesamte Historie zu bereinigen.

26voto

liuggio Punkte 384

Hallo, du könntest es auf diese Weise einfach lösen:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch DATEINAME.TAR' --prune-empty --tag-name-filter cat -- --all

Link: https://help.github.com/articles/remove-sensitive-data

6voto

rlb.usa Punkte 14531

Laut dem neuen Dateigrößenlimit von GitHub (auch: Arbeiten mit großen Dateien), das erst vor wenigen Stunden eingeführt wurde, hat GitHub nun neue Richtlinien für ein Repository mit einer Dateigröße von 1 GB, Warnungen für das Hochladen von Dateien über 50 MB und die vollständige Ablehnung von Dateiuploads über 100 MB.

GitHub warnt dich, wenn du eine Datei größer als 50 MB hochlädst. Wir werden das Hochladen von Dateien über 100 MB vollständig ablehnen. Wir tun dies aus einigen Gründen.

Du hast ein paar Optionen, aber nicht viele:

  • Lade deine 100 MB+ Dateien auf einen anderen Dienst hoch und teile sie dort
  • Reduziere die Dateigröße von problematischen Dateien
  • Finde ein neues Repository

1voto

Franck Dernoncourt Punkte 68647

Das tatsächliche Limit für jede Datei auf GitHub beträgt 100 MiB und nicht 100 MB.

Demo: https://github.com/Franck-Dernoncourt/github-max-file-size


https://help.github.com/articles/what-is-my-disk-quota/ (Spiegel) behauptet fälschlicherweise, dass sie eine strenge Grenze für Dateien über 100 MB setzen.

Die Verwirrung zwischen MB und MiB zeigt sich beim Pushen: Im folgenden Beispiel gibt die Fehlermeldung des GitHub-Servers an, dass die Datei 101 MB groß ist, während git korrekt angibt, dass es sich um 101 MiB handelt:

~\Documents\GitHub\test123 [master 1 +3 ~0 -0 !]> git push
Zähle Objekte: 3, fertig.
Delta-Kompression mit bis zu 8 Threads.
Komprimiere Objekte: 100% (3/3), fertig.
Schreibe Objekte: 100% (3/3), 101.03 MiB | 896.00 KiB/s, fertig.
Total 3 (Delta 1), wiederverwendet 0 (Delta 0)
remote: Deltas auflösen: 100% (1/1), abgeschlossen mit 1 lokalen Objekten.
remote: Fehler: GH001: Große Dateien erkannt. Du kannst versuchen, Git Large File Storage - https://git-lfs.github.com.
remote: Fehler: Trace: e9206a9cd05c4ff5de79bba9d4caf9df
remote: Fehler: Siehe http://git.io/iEPt8g für weitere Informationen.
remote: Fehler: Datei 101MB ist 101.00 MB; dies überschreitet die Dateigrößenbegrenzung von GitHub von 100.00 MB
Zu https://github.com/Franck-Dernoncourt/test123.git
 ! [remote abgelehnt] master -> master (pre-receive hook declined)
Fehler: Konnte einige Referenzen nicht pushen zu 'https://github.com/Franck-Dernoncourt/test123.git'
~\Documents\GitHub\test123 [master 1 +3 ~0 -0 !]>

0voto

Amir Rubin Punkte 850

Verwenden Sie dieses Python-Skript, um Ihr Repository von großen Dateien zu bereinigen (ich habe es in meinem Repo verwendet und es hat super funktioniert) https://gist.github.com/1433794

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X