CommunityCodierung & Entwicklunggithub.com

lg0219/github-ghclone

Beschleunigungsstrategie für GitHub-Zugriffe aus dem chinesischen Festland (CN-Netzwerk) bei langsamer Verbindung und abreißenden Clone/Fetch-Vorgängen.

Was ist github-ghclone?

Diese Fähigkeit adressiert das Problem der instabilen und langsamen GitHub-Verbindung innerhalb des chinesischen Festlandnetzes (Great Firewall). Sie implementiert einen automatisch rotierenden und wiederholungsbasierten Beschleunigungsansatz, indem sie mehrere Community-betriebene Mirror-Proxys (wie `gh-proxy.com`, `ghfast.top`, `ghproxy.net`) verwendet, um den Zugriff auf `github.com`-Ressourcen zu beschleunigen. Die Lösung bietet eine One-Click-Installation, die Git globale statische Aliase (`url.insteadOf`) und ein praktisches Shell-Skript `ghclone` einrichtet. Dieses Skript testet automatisch die Verfügbarkeit jedes Proxys, wechselt bei Fehlern und wiederholt den Vorgang dreimal pro Proxy, bevor es eine endgültige Fehlermeldung ausgibt. Sie ist für Entwickler konzipiert, die in Umgebungen mit Netzwerkeinschränkungen arbeiten und Tools wie Claude Code, Cursor oder Codex verwenden, die auf zuverlässigen GitHub-Zugriff angewiesen sind. Die Lösung ist plattformunabhängig, da sie auf Shell-Skripten und Git-Konfigurationen basiert. Sie bietet zudem einfache Methoden zur Validierung der Proxy-Verfügbarkeit und zur manuellen Anpassung der Proxy-Liste.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add lg0219/github-ghclone

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

GitHub GHClone - Beschleunigungs-Fähigkeit für GitHub (CN-Netzwerk)

Anwendungsszenarien

Diese Fähigkeit wird aktiviert, wenn der Benutzer im chinesischen Festlandnetz auf folgende Probleme stößt:

  • git clone https://github.com/... ist langsam, bleibt hängen, zeigt Recv failure: Verbindung vom Gegenüber zurückgesetzt oder Timeouts an.
  • Direkte GitHub-Webseiten-/API-Verbindungen sind instabil oder vollständig blockiert (curl https://github.com liefert 0 Bytes).
  • Batch-Downloads von GitHub-Repositories, Release-Dateien oder Raw-Dateien sind erforderlich.

Kernidee: Der Zugriff auf github.com wird über lokal erreichbare „Beschleunigungspräfixe“ (Mirror-Proxys) umgeleitet, mit automatischer Rotation + Wiederholung für mehrere Präfixe. Wenn ein einzelnes Präfix ausfällt, bleibt der Vorgang nicht hängen, sondern wechselt automatisch zum nächsten.

Ein-Klick-Installation

# Klone dieses Repository (verwende gegebenenfalls ein verfügbares Präfix, um es zuerst zu ziehen)
git clone https://gh-proxy.com/https://github.com/OWNER/github-ghclone.git
cd github-ghclone
bash scripts/install.sh
source ~/.bashrc   # Aktiviere ~/bin

Nach der Installation erhältst du:

  • ~/bin/ghclone – ausführbares Skript (automatische Rotation von 3 Präfixen, 3 Wiederholungen pro Präfix)
  • Git globalen statischen Alias url."https://gh-proxy.com/https://github.com/".insteadOf (normale git clone-Befehle profitieren direkt)
  • Git-Alias gclone → ghclone

Verwendung

# Methode 1: Direkter Skriptaufruf
ghclone https://github.com/owner/repo.git --depth 1

# Methode 2: Git-Alias
git gclone https://github.com/owner/repo.git --depth 1

# Normale Git-Befehle (bereits global beschleunigt, kein Alias nötig)
git clone https://github.com/owner/repo.git

ghclone erkennt automatisch, welches Präfix aktuell verfügbar ist. Bei Erfolg wird das Ergebnis zurückgegeben; nur wenn alle fehlschlagen, wird ein Fehler ausgegeben.

Manuelle Konfiguration (falls install.sh nicht ausgeführt werden soll)

  1. Skript herunterladen (im Repository unter bin/ghclone), in ~/bin/ ablegen und mit chmod +x ausführbar machen.
  2. Git globalen statischen Alias (wähle ein aktuell verfügbares Präfix):
    git config --global url."https://gh-proxy.com/https://github.com/".insteadOf "https://github.com/"
    
  3. Git-Alias:
    git config --global alias.gclone '!~/bin/ghclone'
    
  4. PATH: Stelle sicher, dass ~/bin im PATH ist (in ~/.bashrc hinzufügen):
    export PATH="$HOME/bin:$PATH"
    

Präfixe ändern / hinzufügen / entfernen (falls ein Präfix ausfällt)

Beschleunigungspräfixe werden von der Community betrieben und sind mal verfügbar, mal nicht – Rotation ist notwendig:

  • Ändere das Array PATS=(...) in ~/bin/ghclone (oder im Repository bin/ghclone), um Präfixe hinzuzufügen oder zu entfernen.
  • Ändere den globalen statischen Git-Alias:
    # Ersetze mit einem neuen verfügbaren Präfix
    git config --global url."https://neues-präfix/https://github.com/".insteadOf "https://github.com/"
    # Entferne altes Präfix
    git config --global --unset url."https://altes-präfix/https://github.com/".insteadOf
    

Präfixverfügbarkeit prüfen

Führe für jedes Präfix einen Test-Repository-Ls-Remote durch (gibt einen Commit-Hash zurück, wenn verfügbar; 0 Bytes/Fehler, wenn nicht verfügbar):

for p in https://gh-proxy.com https://ghfast.top https://ghproxy.net; do
  n=$(git ls-remote "$p/https://github.com/octocat/Hello-World.git" HEAD 2>/dev/null | head -1)
  echo "$p -> ${n:-Nicht verfügbar}"
done

Bekannte verfügbare Präfixe (Stand Oktober 2026 getestet – können sich jederzeit ändern)

PräfixVerwendung
https://gh-proxy.comhttps://gh-proxy.com/https://github.com/owner/repo.git
https://ghfast.tophttps://ghfast.top/https://github.com/owner/repo.git
https://ghproxy.nethttps://ghproxy.net/https://github.com/owner/repo.git

Direkte Verbindungen zu github.com liefern im chinesischen Festlandnetz meist 0 Bytes (blockiert); verwende daher auf jeden Fall ein Präfix. Präfixdienste sind instabil – die Wiederholungslogik von ghclone wurde entwickelt, um solche „Verbindung zurückgesetzt“-Fehler abzufangen.

Einschränkungen und Hinweise

  • Präfix-Proxys sind Community-Dienste von Drittanbietern; Verfügbarkeit, Geschwindigkeit und Lebensdauer sind nicht kontrollierbar. Falls alle ausfallen, müssen neue Präfixe gesucht und in PATS ersetzt werden.
  • Beschleunigt nur den Git-Protokollzugriff auf github.com. Subdomains wie objects.githubusercontent.com (Release-Großdateien) können ebenfalls mit einem Präfix umschlossen werden.
  • Compliance-Hinweis: Stelle sicher, dass die verwendeten Methoden den lokalen gesetzlichen Bestimmungen entsprechen.

Verwandte Skills