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?
Überprüfen Sie Ihre Git-Version
Es ist keine Mindestversion von Git erforderlich, um mit GitHub zu interagieren, aber unserer Erfahrung nach ist Version 1.7.10 eine bewährte stabile Version, die auf vielen Plattformen verfügbar ist. Du kannst jederzeit die neueste Version auf der Git-Website herunterladen.
Stellen Sie sicher, dass die Fernbedienung korrekt ist
Das Repository, das Sie abrufen möchten, 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 können Sie die URL über unsere GitHub Desktop Anwendung ändern.
Zugriffstoken angeben
Für den Zugriff GitHubmüssen Sie sich mit einem personal access token Anstelle Ihres 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.
Tipp
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 angezeigt wird, bedeutet dies, dass das Repository nicht vorhanden ist, Sie nicht über die Berechtigung zum Zugriff darauf verfügen oder Ihre GitHub Enterprise Server-Instance sich im privaten Modus befinden. Je nach Ursache gibt es einige 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.
Stellen Sie sicher, dass der verwendete SSH-Schlüssel an Ihr persönliches Konto GitHubangefü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 finden Sie unter Adding a new SSH key to your GitHub account.
Überprüfe, ob sich deine Instanz im privaten Modus befindet
Wenn Ihr Websiteadministrator den privaten Modus in Ihrer GitHub Enterprise-Instanz aktiviert hat, werden anonyme Klonen ü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 fehlschlägt, stellen Sie sicher, dass das Repository auf Ihre GitHub Enterprise Server-Instance wirklich existiert! 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 Standard-Branch eines Repository 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 den Fehler zu beheben, müssen Sie ein Administrator des Repositorys sein auf Ihre GitHub Enterprise Server-Instance.
Ä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 zu deinem 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'