Skip to main content

Informationen zu großen Dateien auf GitHub

GitHub Enterprise Server 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 Server

GitHub Enterprise Server versucht, reichlich Speicher für alle Git-Repositorys bereitzustellen, obwohl feste Grenzwerte für Dateigrößen und Empfehlungen für Repositorygrößen bestehen.

Dateigrößenbeschränkungen

GitHub Enterprise Server 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 finden Sie unter Eine Datei zu einem Repository hinzufügen.

Standardmäßig blockiert GitHub Enterprise Server Dateien, die größer als 100 MiB sind. Websiteadministratorn können jedoch einen anderen Grenzwert für Ihre GitHub Enterprise Server-Instance konfigurieren. Weitere Informationen findest du unter Erzwingen von Repositoryverwaltungsrichtlinien in einem Unternehmen.

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

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

Empfehlungen für die Repositorygröße

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.

Du kannst verhindern, dass dein Repository unsere Infrastruktur beeinträchtigt, indem du die Größe und Integrität deines Repository effektiv verwaltest. Ratschläge und ein Tool zur Repositoryanalyse findest du im Repository github/git-sizer.

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 Ihre GitHub Enterprise Server-Instance. 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 Ihre GitHub Enterprise Server-Instance ü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 Ihre GitHub Enterprise Server-Instance:

    $ 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 Ihre GitHub Enterprise Server-Instance 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.