Fehlerbehebung
HTTPS
Fehler „Permission denied (publickey)“ (Berechtigung verweigert (publickey)) bei der Verbindung mit einem Remoterepository über SSH
Zunächst sollten Sie Folgendes sicherstellen:
- Ist die URL korrekt?
- Ist der geheime Schlüssel auf dem lokalen Computer richtig konfiguriert?
- Ist der öffentliche Schlüssel im Remoterepository richtig konfiguriert?
Sie können die Konfiguration des öffentlichen/geheimen Schlüssels für das Backlog-Remoterepository überprüfen, indem Sie den folgenden Befehl ausführen:
$ ssh <space>@<space>.git.backlog.com
Ersetzen Sie <space>
durch einen Backlog-Space in Ihrem Besitz (z. B. ist dies für den Space demo.backlog.com
der Eintrag demo@demo.git.backlog.com
)
Wenn die Einstellung korrekt ist, erhalten Sie die folgende Ausgabe. Wenn Sie eine Fehlermeldung erhalten, wiederholen Sie die obigen Schritte, und vergewissern Sie sich, dass Sie alle Schritte richtig ausgeführt haben.
Hi yourname! You've successfully authenticated, but Backlog does not provide
shell access.
Connection to git.backlog.com closed.
Klonen eines Remoterepositorys über dessen HTTPS-URL ist nicht möglich
Bei älteren Versionen von Git kann es gelegentlich zu Problemen beim Ausführen eines Push- oder Pull-Vorgangs kommen. Es wird empfohlen, die neueste Git-Version oder eine höhere Version als v2 zu verwenden. Wenn Sie einen Git-Client wie Sourcetree oder TortoiseGit verwenden, benutzen Sie die Git-Version, die mit dem entsprechenden Client mitgeliefert wird.
Ich werde jedes Mal zur Eingabe des Kennworts aufgefordert, wenn ich einen Push zum/Pull aus dem Remoterepository ausführe.
Sie können die mehrfache Eingabe des Kennworts vermeiden, indem Sie folgende Konfiguration durchführen.
Windows
Sie können git-credential-winstore verwenden, sodass Sie nur beim ersten Push/Pull nach dem Kennwort gefragt werden.
Mac
Sie können Sourcetree (das wir in einem früheren Kapitel behandelt haben) verwenden, um eine Verbindung mit dem Mac-Schlüsselbund herzustellen. Auf diese Weise kann Git erkennen, welche Anmeldeinformationen bei jedem Pull- oder Push-Vorgang zu verwenden sind.
Console
Auf einem Mac können Sie die Git-Anmeldeinformations-API verwenden, um einen Benutzernamen und ein Kennwort mit Git-Vorgängen zu verknüpfen. Wenn Sie Homebrew verwenden, wird die Git-Anmeldeinformations-API automatisch installiert. Andernfalls müssen Sie sie manuell installieren.
Mit dem folgenden Befehl können Sie überprüfen, ob die Anmeldeinformations-API installiert ist.
$ git credential-osxkeychain
Usage: git credential-osxkeychain <get|store|erase>
Wenn die Anmeldeinformations-API nicht installiert ist, wird die folgende Ausgabe angezeigt.
$ git credential-osxkeychain
git: 'credential-osxkeychain' is not a git command. See 'git --help'.
In diesem Fall können Sie sie herunterladen und die Dateien in „/usr/local/bin“ ablegen.
$ curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
$ chmod u+x git-credential-osxkeychain
$ mv git-credential-osxkeychain /usr/local/bin
Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um die Anmeldeinformations-API zu aktivieren.
git config --global credential.helper osxkeychain
Änderungen, die in das Remoterepository übertragen wurden, werden dort nicht angezeigt
Beim Ausführen eines Push-Vorgangs kann die folgende Meldung angezeigt werden. Dies ist normalerweise der Fall, wenn Sie von einem neuen lokalen Repository aus pushen.
$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'main'.
Everything up-to-date
Durch das Weglassen des Branch-Namens beim Ausführen eines Push-Vorgangs geht Git standardmäßig davon aus, dass Sie versuchen, die aktuelle Änderung in einen Remote-Branch mit demselben Namen wie der lokale Branch zu pushen. Dies geschieht, wenn der Haupt-Branch im Remoterepository noch nicht erstellt wurde. (Wir führen den Push-Vorgang vom lokalen Haupt-Branch aus.) In diesem Fall müssen wir den Namen des Branches explizit verwenden, wenn wir einen Push ausführen.
$ git push -u origin main
Auf diese Weise wird der Haupt-Branch im Remoterepository automatisch erstellt. Beim nächsten Ausführen des Push-Vorgangs können Sie den Branch-Namen weglassen.