Fehler bei HTTPS-Klonvorgängen
Bei der Verwendung von HTTPS bei Git treten einige Fehler häufiger auf. Diese Fehler deuten normalerweise darauf hin, dass du eine alte Version von Git verwendest oder keinen Zugriff auf das Repository hast.
Hier siehst du ein Beispiel für einen möglichen HTTPS-Fehler:
> error: The requested URL returned error: 401 while accessing
> https://HOSTNAME/USER/REPO.git/info/refs?service=git-receive-pack
> fatal: HTTP request failed
> Error: The requested URL returned error: 403 while accessing
> https://HOSTNAME/USER/REPO.git/info/refs
> fatal: HTTP request failed
> Error: https://HOSTNAME/USER/REPO.git/info/refs not found: did you run git
> update-server-info on the server?
Git-Version überprüfen
Für die Interaktion mit GitHub Enterprise Server ist keine Mindestversion von Git erforderlich. Unserer Erfahrung nach ist aber die Version 1.7.10 eine gute, stabile Version, die auf vielen Plattformen verfügbar ist. Du kannst jederzeit die neueste Version auf der Git-Website herunterladen.
Überprüfen, ob das Remote-Repository korrekt ist
Das Repository, von dem du etwas abrufen möchtest, muss auf Ihre GitHub Enterprise Server-Instance vorhanden sein.
Um die URL des lokalen Repositorys zu ermitteln, öffne die Befehlszeile und gib git remote -v
ein:
$ git remote -v
# View existing remotes
> origin https://github.com/ghost/cocoareactive.git (fetch)
> origin https://github.com/ghost/cocoareactive.git (push)
$ git remote set-url origin https://github.com/ghost/ReactiveCocoa.git
# Change the 'origin' remote's URL
$ git remote -v
# Verify new remote URL
> origin https://github.com/ghost/ReactiveCocoa.git (fetch)
> origin https://github.com/ghost/ReactiveCocoa.git (push)
Alternativ kannst du die URL über die GitHub Desktop-Anwendung ändern.
Zugriffstoken angeben
Um auf GitHub zuzugreifen, musst du dich mit einem personal access token anstelle deines Kennworts authentifizieren. Weitere Informationen finden Sie unter Verwalten deiner persönlichen Zugriffstoken.
Überprüfen deiner Berechtigungen
Wenn du zur Eingabe eines Benutzernamens und Passworts aufgefordert wirst, stelle sicher, dass du ein Konto verwendest, das Zugriff auf das Repository hat.
Tip
Wenn du deine Anmeldeinformationen nicht jedes Mal eingeben möchtest, wenn du das Remoterepository verwendest, kannst du die credential caching aktivieren. Wenn du die Zwischenspeicherung von Anmeldeinformationen bereits verwendest, solltest du sicherstellen, dass auf deinem Computer die richtigen Anmeldeinformationen zwischengespeichert sind. Falsche oder veraltete Anmeldeinformationen führen zu einem Fehler bei der Authentifizierung.
Stattdessen SSH verwenden
Wenn du zuvor SSH-Schlüssel eingerichtet hast, kannst du statt HTTPS die SSH-Klon-URL verwenden. Weitere Informationen finden Sie unter Informationen zu Remote-Repositorys.
Fehler: „Repository not found“ (Repository wurde nicht gefunden)
Wenn dieser Fehler beim Klonen eines Repositorys auftritt, bedeutet dies, dass das Repository nicht vorhanden ist, du nicht über die Berechtigung zum Zugreifen darauf verfügst oder Ihre GitHub Enterprise Server-Instance im privaten Modus ausgeführt wird. Je nach Ursache gibt es verschiedene Lösungen für diesen Fehler.
Überprüfe die Rechtschreibung.
Tippfehler kommen vor. Wenn du versuchst git@HOSTNAME:owner/repotile.git
zu klonen, aber das Repository eigentlich owner/repoti1e
heißt, erhältst du diesen Fehler.
Um diesen Fehler beim Klonen zu verhindern, solltest du die Klon-URL immer von der Repository-Seite kopieren und einfügen. Weitere Informationen finden Sie unter Ein Repository klonen.
Informationen zum Remoteaktualisieren eines vorhandenen Repositorys findest du unter Remote-Repositorys verwalten.
Berechtigungen überprüfen
Wenn du versuchst, ein privates Repository zu klonen, aber keine Berechtigung zum Anzeigen dieses Repositorys hast, wird diese Fehlermeldung angezeigt.
Stelle sicher, dass du in einer der folgenden Rollen Zugriff auf das Repository hast:
- Inhaber des Repositorys
- Ein Projektmitarbeiter im Repository
- Ein Teammitglied mit Zugriff auf das Repository (wenn das Repository zu einer Organisation gehört)
SSH-Zugriff überprüfen
In seltenen Fällen kann Dir der richtige SSH-Zugriff auf ein Repository fehlen.
Du solltest sicherstellen, dass der von dir verwendete SSH-Schlüssel an dein persönliches Konto bei GitHub Enterprise Server angefügt ist. Um zu prüfen, ob dies bei dir der Fall ist, gib Folgendes an der Befehlszeile ein:
$ ssh -T git@HOSTNAME
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.
Weitere Informationen findest du unter Hinzufügen eines neuen SSH-Schlüssels zu deinem GitHub-Konto.
Überprüfe, ob sich deine Instanz im privaten Modus befindet
Wenn die Websiteadministrator*innen für deine GitHub Enterprise-Instanz den privaten Modus aktiviert haben, sind anonyme Klone über git://
deaktiviert. Wenn du ein Repository nicht klonen kannst, wende Dich an den Websiteadministrator.
Überprüfen ob das Repository wirklich vorhanden ist
Wenn alles andere nicht hilft, stelle sicher, dass das Repository tatsächlich auf Ihre GitHub Enterprise Server-Instance vorhanden ist! Wenn du versuchst, einen Push zu einem Repository zu machen, das nicht vorhanden ist, wird diese Fehlermeldung angezeigt.
Fehler: „Remote HEAD refers to nonexistent ref, unable to checkout“ (Remote-HEAD verweist auf nicht vorhandene Referenz, Auschecken nicht möglich)
Dieser Fehler tritt auf, wenn der Standardbranch eines Repositorys auf Ihre GitHub Enterprise Server-Instance gelöscht wurde.
Es ist nicht schwierig, diesen Fehler zu erkennen. Git warnt Dich, wenn du versuchst, das Repository zu klonen:
$ git clone https://HOSTNAME/USER/REPO.git
# Clone a repo
> Cloning into 'repo'...
> remote: Counting objects: 66179, done.
> remote: Compressing objects: 100% (15587/15587), done.
> remote: Total 66179 (delta 46985), reused 65596 (delta 46402)
> Receiving objects: 100% (66179/66179), 51.66 MiB | 667 KiB/s, done.
> Resolving deltas: 100% (46985/46985), done.
> warning: remote HEAD refers to nonexistent ref, unable to checkout.
Um das Problem zu beheben, musst du ein Administrator des Repositorys auf Ihre GitHub Enterprise Server-Instance sein. Ändere den Standardbranch des Repositorys.
Anschließend kannst du über die Befehlszeile eine Liste aller verfügbaren Branches abrufen:
$ git branch -a
# Lists ALL the branches
> remotes/origin/awesome
> remotes/origin/more-work
> remotes/origin/new-main
Danach kannst du einfach zum neuen Branch wechseln:
$ git checkout new-main
# Create and checkout a tracking branch
> Branch new-main set up to track remote branch new-main from origin.
> Switched to a new branch 'new-main'