Informationen zu Größenbeschränkungen für GitHub
GitHub versucht, reichlich Speicherplatz für alle Git-Repositorys bereitzustellen, obwohl es feste Grenzwerte für Datei - und Repositorygrößen gibt. Um die Leistung und Zuverlässigkeit für unsere Benutzer sicherzustellen, überwachen wir aktiv Signale der gesamten Repositorygesundheit. Die Repository-Gesundheit ist eine Funktion verschiedener Interaktionsfaktoren, einschließlich Größe, Commithäufigkeit, Inhalt und Struktur.
Dateigrößenbeschränkungen
GitHub schränkt die Größe von Dateien ein, die in Repositorys zulässig sind. Wenn Sie versuchen, eine Datei hinzuzufügen oder zu aktualisieren, die größer als 50 MiBist, erhalten Sie eine Warnung von Git. Die Änderungen werden weiterhin erfolgreich in Ihr Repository übertragen, aber Sie können erwägen, den Commit zu entfernen, um die Leistungsbeeinträchtigung zu minimieren. Weitere Informationen findest du unter Entfernen von Dateien aus einem Repositoryverlauf.
Hinweis
Wenn Sie eine Datei über einen Browser zu einem Repository hinzufügen, kann die Datei nicht größer als 25 MiBsein. Weitere Informationen finden Sie unter Eine Datei zu einem Repository hinzufügen.
GitHubdie größer als 100 MiBsind. Ein Websiteadministrator kann jedoch einen anderen Grenzwert für
Um Dateien nachzuverfolgen, die über diesen Grenzwert hinausgehen, müssen Sie Git Large File Storage (Speicher für große Dateien)(Git LFS) verwenden. Weitere Informationen finden Sie unter Informationen zu Git Large File Storage.
Wenn Sie große Dateien innerhalb Ihres Repositorys verteilen müssen, können Sie Veröffentlichungen 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 Ihr Repository übermäßige Auswirkungen auf unsere Infrastruktur hat, erhalten Sie möglicherweise eine E-Mail, in GitHub-Support der Sie aufgefordert werden, Korrekturmaßnahmen zu ergreifen. 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 der Historie eines Repositorys entfernen
Warnung
Diese Verfahren entfernen Dateien dauerhaft aus dem Repository auf Ihrem Computer und GitHub.com. Wenn die Datei wichtig ist, solltest du eine lokale Sicherungskopie in einem Verzeichnis außerhalb des Repositorys erstellen.
Entfernen einer Datei, die im jüngsten, noch nicht übertragenen Commit hinzugefügt wurde
Wenn die Datei mit Ihrem letzten Commit hinzugefügt wurde und Sie noch nicht nach GitHub.com gepusht haben, können Sie die Datei löschen und den Commit anpassen:
-
Öffne TerminalTerminalGit Bash.
-
Ändere das aktuelle Arbeitsverzeichnis in Dein lokales Repository.
-
Um die Datei zu entfernen, gib
git rm --cachedein:$ git rm --cached GIANT_FILE # Stage our giant file for removal, but leave it on disk -
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 -
Übertragen Sie Ihre Commits an 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 bzw. die Commits darf bzw. dürfen nur Teil eines Branches sein.
- Der eine Branch, zu dem die Commits gehören, darf ab der Anwendung des/der Commits keine Zusammenführungen gehabt haben.
Weitere Informationen zu interaktiven Rebases findest du unter Git rebase an der Befehlszeile verwenden. Wenn Sie sich nicht sicher sind, ob Sie die erforderlichen Bedingungen für die Behebung mit einem interaktiven Rebasing erfüllen, sollten Sie
git filter-repoverwenden.
Große Binärdateien verteilen
Wenn Sie große Dateien innerhalb Ihres Repositorys verteilen müssen, können Sie 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. Jede einzelne Datei muss jedoch kleiner als die maximale Dateigrößenbeschränkung für Git LFS Ihres Plans sein. Siehe Informationen zu Git Large File Storage.