Fehler bei HTTPS-Klonvorgängen
Bei der Verwendung von HTTPS bei Git treten einige Fehler häufiger auf. Sie 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 immer die neueste Version auf der Git-Website herunterladen.
Überprüfen, ob das Remote-Repository korrekt ist
Das Repository, von dem Sie etwas abrufen möchten, muss auf your GitHub Enterprise Server instance vorhanden sein. Bei der URL müssen Sie die Groß- und Kleinschreibung beachten.
Um die URL des lokalen Repositorys zu ermitteln, öffne die Befehlszeile und gib git remote -v
ein:
$ git remote -v
# Zeigt vorhandene Remote-Repositorys an
> origin https://github.com/ghost/reactivecocoa.git (fetch)
> origin https://github.com/ghost/reactivecocoa.git (push)
$ git remote set-url origin https://github.com/ghost/ReactiveCocoa.git
# Ändert die origin-Remote-URL
$ git remote -v
# Überprüft die neue Remote-URL
> origin https://github.com/ghost/ReactiveCocoa.git (fetch)
> origin https://github.com/ghost/ReactiveCocoa.git (push)
Alternativ können Sie die URL auch über unsere GitHub Desktop-Anwendung ändern.
Zugriffstoken angeben
To access GitHub, you must authenticate with a personal access token instead of your password. Weitere Informationen finden Sie unter "Erstellen eines persönlichen Zugriffstokens."
Berechtigungen überprüfen
Wenn Du zur Eingabe eines Benutzernamens und Passworts aufgefordert wirst, stelle sicher, dass Du ein Konto verwendest, das Zugriff auf das Repository hat.
Tip: If you don't want to enter your credentials every time you interact with the remote repository, you can turn on credential caching. If you are already using credential caching, please make sure that your computer has the correct credentials cached. Incorrect or out of date credentials will cause authentication to fail.
Stattdessen SSH verwenden
Wenn Du zuvor SSH-Schlüssel eingerichtet hast, kannst Du statt HTTPS die SSH-Klon-URL verwenden. For more information, see "About remote repositories."
Fehler: „Repository not found“ (Repository wurde nicht gefunden)
If you see this error when cloning a repository, it means that the repository does not exist, you do not have permission to access it, or your GitHub Enterprise Server instance is in private mode. There are a few solutions to this error, depending on the cause.
Schreibweise überprüfen
Tippfehler kommen immer wieder vor, und bei den Namen von Repositorys muss die Groß- und Kleinschreibung beachtet werden. Wenn Sie versuchen, git@<em>Hostname</em>:user/repo.git
zu klonen, das Repository aber in Wirklichkeit User/Repo
heißt, wird diese Fehlermeldung angezeigt.
Um diesen Fehler beim Klonen zu verhindern, solltest Du die Klon-URL immer von der Repository-Seite kopieren und einfügen. Weitere Informationen findest Du unter „Ein Repository clonen“.
To update the remote on an existing repository, see "Managing remote repositories".
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
- Mitarbeiter bei einem Repository
- Mitglied eines Teams, das Zugriff auf das Repository hat (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.
Sie sollten sicherstellen, dass der von Ihnen verwendete SSH-Schlüssel an Ihr GitHub Enterprise Server-Benutzerkonto angehängt ist. Um zu prüfen, ob dies bei Dir der Fall ist, gib Folgendes in die Befehlszeile ein:
$ ssh -T git@Hostname
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
Wenn das Repository zu einer Organisation gehört und Du einen SSH-Schlüssel verwendest, der von einer OAuth-App generiert wurde, wurde der OAuth-App-Zugriff möglicherweise von einem Organisationsinhaber eingeschränkt. For more information, see "About OAuth App access restrictions."
Weitere Informationen findest Du unter „Einen neuen SSH-Schlüssel zum GitHub-Konto hinzufügen“.
Überprüfe, ob sich Deine Instanz im privaten Modus befindet
Wenn Dein Websiteadministrator den privaten Modus auf Deiner GitHub Enterprise-Instanz aktiviert hat, 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 your 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 your 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
# Klont ein Repository
> 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 your 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
# Führt ALLE Branches auf
> remotes/origin/awesome
> remotes/origin/more-work
> remotes/origin/new-master
Danach kannst Du einfach zum neuen Branch wechseln:
$ git checkout new-master
# Erstellt einen Tracking-Branch und checkt ihn aus
> Branch new-master set up to track remote branch new-master from origin.
> Switched to a new branch 'new-master'