Skip to main content

Informationen zu großen Dateien auf GitHub

GitHub Enterprise Cloud schränkt die Größe der Dateien ein, die du in herkömmlichen Git-Repositorys nachverfolgen kannst. Hier wird erläutert, wie du Dateien nachverfolgen oder entfernen kannst, die über dem Grenzwert liegen.

Platform navigation

Informationen zu Größenbeschränkungen für GitHub Enterprise Cloud

GitHub Enterprise Cloud versucht, reichlich Speicher für alle Git-Repositorys bereitzustellen, obwohl feste Grenzwerte für Datei- und Repositorygrößen bestehen. Um die Leistungsfähigkeit und Zuverlässigkeit für unsere Benutzer*innen zu gewährleisten, überwachen wir aktiv die Signale der gesamten Repositoryintegrität. Die Repositoryintegrität ist eine Funktion verschiedener zusammenhängender Faktoren wie Größe, Commitfrequenz, Inhalte und Struktur.

Dateigrößenbeschränkungen

GitHub Enterprise Cloud schränkt die Größe der in Repositorys erlaubten Dateien ein. Wenn du versuchst, eine Datei größer als 50 MiB 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 findest du unter Entfernen von Dateien aus einem Repositoryverlauf.

Note

Falls du über einen Browser eine Datei zu einem Repository hinzufügst, darf die Datei nicht größer als 25 MiB sein. Weitere Informationen findest du unter Eine Datei zu einem Repository hinzufügen.

GitHub Enterprise Cloud Dateien, die größer als 100 MiB sind.

Um Dateien über diesen Grenzwert hinaus nachzuverfolgen, musst du Git Large File Storage (Git LFS) verwenden. Weitere Informationen findest du unter Informationen zu Git Large File Storage.

Wenn du große Dateien innerhalb deines Repositorys verteilen musst, kannst du Releases auf GitHub.com erstellen, anstatt die Dateien nachzuverfolgen. Weitere Informationen findest du unter Verteilen großer Binärdateien.

Git ist nicht für die Verarbeitung großer SQL-Dateien konzipiert. Um große Datenbanken mit anderen Entwicklern zu teilen, empfehlen wir die Nutzung eines Datenfreigabedienstes.

Größenbeschränkungen für Repositorys

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. Du findest Ratschläge und ein Tool zur Repositoryanalyse im Repository github/git-sizer.

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. Bundler, der Paket-Manager von Node und Maven gehören zu den beliebten Paket-Managern für häufige Sprachen. 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 stehen jedoch viele Lösungen zur Verfügung, die speziell zum Erstellen von Sicherungen entwickelt wurden, z. B. Arq, Carbonite und CrashPlan.

Dateien aus dem Verlauf eines Repositorys entfernen

Warning

Mit den hier beschriebenen Verfahren löschst du Dateien dauerhaft aus dem Repository auf deinem Computer und von GitHub.com. 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 deinem letzten Commit hinzugefügt wurde und dieses noch nicht per Push auf GitHub.com übertragen wurde, kannst du die Datei löschen und den Commit ändern:

  1. Öffne TerminalTerminalGit Bash.

  2. Ändere das aktuelle Arbeitsverzeichnis in Dein lokales Repository.

  3. Um die Datei zu entfernen, gib git rm --cached ein:

    $ git rm --cached GIANT_FILE
    # Stage our giant file for removal, but leave it on disk
    
  4. Committe diese Änderung mithilfe von --amend -CHEAD:

    $ git commit --amend -CHEAD
    # Amend the previous commit with your change
    # Simply making a new commit won't work, as you need
    # to remove the file from the unpushed history as well
    
  5. Pushe deine Commits auf GitHub.com:

    $ git push
    # Push our rewritten, smaller 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 Repositoryverlauf zu entfernen, wird der git filter-repo-Befehl empfohlen. Weitere Informationen findest du unter Entfernen vertraulicher Daten aus einem Repository.

Alternativ kannst du, wenn du kein zusätzliches Tool installieren möchtest, eine interaktive Neubasis verwenden, um problematische Commits zu entfernen. Gehen Sie hierzu folgendermaßen vor:

  • Du musst wissen, welcher Commit bzw. welche Commits die betreffende Datei hinzugefügt oder geändert hat bzw. haben.
  • Der Commit bzw. die Commits darf bzw. dürfen nur Teil einer Branchs sein.
  • Der eine Branch, zu dem die Commits gehören, muss keine Zusammenführungen aufweisen, da die Commits angewendet wurden.

Weitere Informationen zu interaktiven Rebases findest du unter Git rebase an der Befehlszeile verwenden. Wenn du nicht sicher bist, ob du die erforderlichen Bedingungen für die Behebung mit einem interaktiven Rebase erfüllst, solltest du git filter-repo verwenden.

Große Binärdateien verteilen

Wenn du große Dateien innerhalb deines Repositorys verteilen musst, kannst du Releases auf GitHub.com 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 GiB.