About large files on GitHub

GitHub limits the size of files you can track in regular Git repositories. Learn how to track or remove files that are beyond the limit.

About size limits on GitHub

GitHub versucht genügend Speicher für alle Git-Repositories bereitzustellen, obwohl es harte Grenzen für Datei- und Repository-Größen gibt. Um die Leistungsfähigkeit und Zuverlässigkeit für unsere Benutzer zu gewährleisten, überwachen wir aktiv die Signale des gesamtheitlichen Repository-Zustands. Der Repository-Zustand ist eine Funktion verschiedener zusammenhängender Faktoren wie Größe, Commit-Frequenz, Inhalte und Strukturen.

File size limits

GitHub limits the size of files allowed in repositories. Wenn Du versuchst, eine Datei größer als 50 MB hinzuzufügen oder zu aktualisieren, wirst Du von Git eine Warnung erhalten. Die Änderungen werden immer noch erfolgreich in Dein Repository übertragen, aber kannst erwägen, den Commit zu entfernen, um die Performance-Auswirkungen zu minimieren. Weitere Informationen finden Sie unter „Dateien aus dem Verlauf eines Repositorys entfernen“.

Hinweis: Falls Du über einen Browser einem Repository eine Datei hinzufügst, darf die Datei nicht größer als 25 MB sein. Weitere Informationen findest Du unter „Eine Datei zu einem Repository hinzufügen.“

GitHub blockiert Übertragungen, welche 100 MB übersteigen.

To track files beyond this limit, you must use Git Large File Storage (Git LFS). Weitere Informationen findest Du unter „Informationen zu Git Large File Storage“.

If you need to distribute large files within your repository, you can create releases on GitHub instead of tracking the files. Weitere Informationen findest Du unter "Große Binärdateien verteilen."

Git is not designed to handle large SQL files. Um große Datenbanken mit anderen Entwicklern zu teilen, empfehlen wir Dropbox.

Repository size limits

Wir empfehlen, dass Repositories klein bleiben, idealerweise weniger als 1 GB, und weniger als 5 GB wird dringend empfohlen. Kleinere Repositorys sind schneller zu klonen und einfacher zu bearbeiten und zu pflegen. Wenn Dein Repository unsere Infrastruktur übermäßig belastet, wirst Du allenfalls eine E-Mail von GitHub-Support erhalten, in der Du um Korrekturmaßnahmen gebeten wirst. Wir versuchen flexibel zu sein, speziell mit großen Projekten mit vielen Mitarbeitern, und wir werden wenn immer möglich gemeinsam einen Lösung finden. Du kannst verhindern, dass Dein Repository unsere Infrastruktur beeinträchtigt, indem Du die Größe und den Zustand Deines Repository effektiv verwaltest. Ratschläge und ein Werkzeug für die Analyse Deiner Repositorys findest du im github/git-sizer-Repository.

Externe Abhängigkeiten können dazu führen, dass Git-Repositories sehr groß werden. Um ein Repository nicht mit externen Abhängigkeiten zu füllen, empfehlen wir Dir, einen Paketmanager zu verwenden. Beliebte Paketmanager für gebräuchliche Sprachen sind: Bundler, Node's Package Manager und Maven. Diese Paketmanager unterstützen die Verwendung von Git-Repositorys direkt, so dass Du keine vorpaketierten Quellen benötigst.

Git ist nicht als Backup-Werkzeug konzipiert. Es gibt jedoch viele Lösungen, die speziell zum Durchführen von Backups konzipiert wurden, wie zum Beispiel Arq, Carbonite und CrashPlan.

Dateien aus dem Verlauf eines Repositorys entfernen

Warnung: Mit den hier beschriebenen Verfahren löschst Du Dateien dauerhaft aus dem Repository auf Deinem Computer und von GitHub. Wichtige Dateien solltest Du vor dem Entfernen unbedingt lokal in einem Verzeichnis außerhalb des Repositorys sichern.

Datei entfernen, die beim letzten noch nicht übertragenen Commit hinzugefügt wurde

Wenn eine Datei bei Ihrem letzten Commit hinzugefügt wurde und dieses noch nicht per Push auf GitHub übertragen wurde, können Sie die Datei löschen und den Commit ändern:

  1. Öffne TerminalTerminalGit Bash.
  2. Ändere das aktuelle Arbeitsverzeichnis in Dein lokales Repository.
  3. Gib zum Entfernen der Datei git rm --cached ein:
    $ git rm --cached giant_file
    # Bereite die große Datei zur Entfernung vor, aber belasse sie auf dem Disk
  4. Schreibe diese Änderung mit --amend -CHEAD fest:
    $ git commit --amend -CHEAD
    # passe den frueheren Commit mit Deiner Aenderung an
    # nur einen neuen Commit zu machen, wird nicht funktionieren,
    # weil Du die Datei auch aus dem nicht uebertragenen Verlauf entfernen musst
  5. Übertrage Deine Commits per Push auf GitHub:
    $ git push
    # Uebertrage unseren neu geschriebenen, kleineren Commit

Entfernen einer Datei, die in einem früheren Commit hinzugefügt wurde

Wenn Du eine Datei in einem früheren Commit hinzugefügt hast, musst Du sie aus Deinem Repository-Verlauf entfernen. Um Dateien aus dem Verlauf Deines Repository zu entfernen, kannst Du den BFG Repo-Cleaner oder den Befehl git filter-branch verwenden. Weitere Informationen findest Du unter „Vertrauliche Daten aus einem Repository entfernen.“

Große Binärdateien verteilen

Wenn Du große Dateien innerhalb Deines Repositorys verteilen musst, kannst Du Releases auf GitHub erstellen. Releases erlauben Dir, Software, Release-Hinweise und Links zu Binärdateien zu paketieren, damit andere Personen diese nutzen können. Weitere Informationen findest Du unter „Informationen zu Releases.“

Wir begrenzen weder die Gesamtgröße der binären Release-Dateien noch die Bandbreite, die für deren Bereitstellung verwendet wird. Allerdings muss jede einzelne Datei kleiner sein als 2 GB.

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.