Warum ist GitHub langsam? Ursachen finden und beheben

Programmierung

Warum ist GitHub langsam?

„Langsam“ hat bei GitHub zwei völlig verschiedene Bedeutungen: Entweder ruckelt die Weboberfläche im Browser (Seiten laden träge, Diffs bauen sich zäh auf), oder Git-Operationen wie git clone, git pull und git push dauern quälend lange. Ursachen und Lösungen unterscheiden sich stark – deshalb steht das Eingrenzen am Anfang, und erst danach greifen die passenden Befehle und Einstellungen. Beides klären Sie mit den folgenden Schritten in wenigen Minuten.

Zuerst eingrenzen: Website oder Git?

Bevor Sie irgendetwas ändern, klären Sie zwei Fragen:

  1. Liegt es an GitHub oder an Ihnen? Öffnen Sie die offizielle Statusseite unter githubstatus.com. Steht dort alles auf „Operational“, ist ein GitHub-weiter Ausfall unwahrscheinlich und die Ursache liegt eher bei Ihrer Verbindung oder Konfiguration.
  2. Website oder Kommandozeile? Ist nur der Browser langsam, aber git pull schnell (oder umgekehrt)? Das grenzt die Fehlersuche sofort ein.

Ein schneller Gegentest für die Netzwerkseite:

ping github.com
# Für Downloads per Browser-Button („Download ZIP“) läuft der Traffic
# über eine separate Adresse:
ping codeload.github.com

Hohe oder stark schwankende Latenzzeiten deuten auf ein Netzwerk- oder Routing-Problem hin, nicht auf GitHub selbst.

Die Weboberfläche ist langsam

Wenn github.com im Browser zäh reagiert, sind das die üblichen Verdächtigen:

  • Browser-Cache und Erweiterungen. Testen Sie GitHub in einem privaten/Inkognito-Fenster. Ist es dort flott, liegt es an einer Erweiterung (Werbeblocker, Skript-Blocker, „Refined GitHub“ & Co.) oder am Cache. Deaktivieren Sie Erweiterungen einzeln, um den Übeltäter zu finden.
  • Riesige Diffs und lange Dateilisten. Ein Pull Request mit tausenden geänderten Zeilen oder ein Ordner mit sehr vielen Dateien baut sich im Browser prinzipbedingt langsam auf. Das ist keine Störung, sondern eine Grenze der Darstellung – große generierte Dateien (package-lock.json, Build-Artefakte) gehören ohnehin über eine .gitignore aus dem Repository heraus.
  • DNS. Ein langsamer oder überlasteter DNS-Server des Providers verzögert jeden ersten Seitenaufruf. Ein Wechsel auf einen schnellen öffentlichen Resolver wie 1.1.1.1 (Cloudflare) oder 8.8.8.8 (Google) bringt hier oft spürbar mehr.

Git-Befehle sind langsam

Der häufigere Frust: git clone oder git push hängt scheinbar ewig. Hier hilft meist die Erkenntnis, dass Git standardmäßig die komplette Historie überträgt.

Große Repositories: nicht alles klonen

Bei umfangreichen Projekten müssen Sie selten die gesamte Vergangenheit herunterladen. Zwei Techniken sparen enorm:

# Shallow Clone: nur der letzte Stand, keine Historie
git clone --depth 1 https://github.com/benutzer/projekt.git

# Partial Clone: Struktur sofort, Datei-Inhalte erst bei Bedarf (Git 2.19+)
git clone --filter=blob:none https://github.com/benutzer/projekt.git

Der --depth 1-Clone ist ideal für CI-Builds oder wenn Sie nur den aktuellen Code brauchen. Der --filter=blob:none-Clone (blobless clone) behält die volle Historie, lädt aber Dateiinhalte erst, wenn Sie sie wirklich auschecken – das ist für die tägliche Entwicklung oft der beste Kompromiss.

Wenn Sie nur einen Teil eines Monorepos benötigen, kombinieren Sie das mit Sparse Checkout:

git clone --filter=blob:none --sparse https://github.com/benutzer/monorepo.git
cd monorepo
git sparse-checkout set apps/frontend

Große Binärdateien: Git LFS

Videos, Datenbank-Dumps, Design-Dateien oder kompilierte Artefakte blähen die Historie dauerhaft auf – jede Version bleibt für immer im Repository. Solche Dateien gehören in Git LFS (Large File Storage) oder gar nicht ins Repository. Bereits eingecheckte Riesendateien bekommen Sie nur mit einem Rewrite der Historie (git filter-repo) wieder heraus; einmal übertragen bleiben sie sonst in jedem Clone.

Push schlägt fehl oder hängt

Bei großen Pushes über HTTPS sehen Sie manchmal RPC failed; curl 55 oder einen Abbruch. Zwei bewährte Stellschrauben:

# Sendepuffer vergrößern (Standard ist nur 1 MB)
git config --global http.postBuffer 524288000

# HTTP/1.1 erzwingen, wenn ein Proxy mit HTTP/2 zickt
git config --global http.version HTTP/1.1

Oft ist der Wechsel von HTTPS auf SSH die nachhaltigere Lösung, weil er Proxy- und Puffer-Probleme umgeht. Prüfen Sie mit git remote -v Ihr Protokoll und stellen Sie es bei Bedarf auf git@github.com:... um.

Netzwerk, VPN und Firmen-Proxy

Ein großer Teil aller „GitHub ist langsam“-Fälle liegt zwischen Ihrem Rechner und dem CDN:

  • VPN und Firmen-Proxy leiten den Traffic über Umwege und filtern ihn – das kostet Bandbreite und Latenz. Testen Sie, ob es ohne VPN schneller ist.
  • IPv6-Routing. Ist die IPv6-Route zu GitHub schlecht, hilft es, Git testweise auf IPv4 zu zwingen. Das lässt sich pro Verbindung über die SSH-Konfiguration (AddressFamily inet) einstellen.
  • MTU/Paketgröße. In manchen VPN- und DSL-Setups verursacht eine zu große MTU stockende Übertragungen. Das ist selten, aber ein bekannter Grund für hängende Pushes.

Windows: der oft übersehene Bremsklotz

Unter Windows ist der Virenscanner die häufigste Ursache für langsame Git-Operationen. Jeder Dateizugriff im Arbeitsverzeichnis wird in Echtzeit gescannt – bei Tausenden kleiner Dateien summiert sich das massiv. Nehmen Sie Ihren Projektordner in Windows Defender als Ausnahme auf: Windows-Sicherheit → Viren- & Bedrohungsschutz → Einstellungen verwalten → Ausschlüsse.

Weitere Windows-Tipps:

# Regelmäßige Wartung: packt lose Objekte, hält das Repo schlank (Git 2.30+)
git maintenance start

# Manuell aufräumen
git gc

Wenn Ihr Projekt sehr tiefe Verzeichnisstrukturen hat, aktivieren Sie zusätzlich lange Pfade mit git config --global core.longpaths true. Grundlagen zu den Befehlen selbst finden Sie in unserer Übersicht zu Git-Befehlen; den Unterschied zwischen Git und GitHub klärt der Beitrag Git vs. GitHub.

Typische Fehler und ihre Lösung

SymptomWahrscheinliche UrsacheLösung
clone bricht bei 90 % abInstabile Verbindung, riesige Historie--depth 1 oder erneut versuchen
RPC failed; curl 55 beim PushPuffer zu klein / Proxyhttp.postBuffer erhöhen, SSH nutzen
Nur der Browser ist langsamErweiterung / CacheInkognito-Test, Erweiterungen prüfen
Alles langsam, überallGitHub-Ausfallgithubstatus.com prüfen

FAQ

Ist GitHub für alle langsam oder nur für mich? Das prüfen Sie in 30 Sekunden auf githubstatus.com. Steht dort alles auf „Operational“ und sind Nachbarn oder Kollegen nicht betroffen, liegt es an Ihrer Verbindung, Ihrem Browser oder Ihrer Git-Konfiguration – nicht an GitHub.

Wie klone ich ein riesiges Repository schneller? Mit git clone --depth 1 <URL> laden Sie nur den aktuellen Stand ohne Historie. Brauchen Sie die Historie, aber nicht alle Dateiinhalte sofort, nutzen Sie git clone --filter=blob:none <URL>. Beides reduziert die Übertragungsmenge drastisch.

Warum ist Git unter Windows langsamer als unter Linux? Hauptgrund ist der Echtzeit-Virenscanner, der jeden Dateizugriff im Repository prüft. Ein Ausschluss des Projektordners im Windows Defender bringt bei Repositories mit vielen kleinen Dateien oft den größten Einzelgewinn.