Freigeben über


Behandeln von Problemen beim Klonen oder Pushen von Git an ein Azure DevOps-Repository

In diesem Artikel werden Probleme erläutert, die auftreten können, wenn Sie versuchen, Git-Klon- oder Git-Pushfunktion an ein Azure DevOps-Repository auszuführen.

Gilt für: Azure DevOps Services, Azure DevOps Server

Probleme beim Ausführen eines Git-Klons oder Git-Pushs an die Azure DevOps-Repositorys

Wenn Sie versuchen, ein Repository in GitHub zu klonen oder zu pushen, können einige Probleme mit der Proxykonfiguration, dem SSL-Zertifikat oder dem Anmeldeinformationscache dazu führen, dass der Git-Klonvorgang fehlschlägt.

Checkliste zur Problembehandlung

Führen Sie die folgenden Schritte aus, um die Ursache der Probleme zu ermitteln:

  1. Aktivieren Sie die ausführliche Ablaufverfolgung, um das Ausmaß der ausführlichen Ablaufverfolgung für die von Ihnen ausgeführten Git-Befehle festzulegen.

  2. Legen Sie die folgenden Variablen in Sequenz fest, und führen Sie die Git-Befehle für jede Setvariable aus, um weitere Informationen zu den Fehlern zu erhalten.

    • GIT_TRACE=1
    • GIT_TRACE_PACKET=1
    • GIT_TRACE_CURL_NO_DATA=1
    • GIT_CURL_VERBOSE=1

Die Ebene der Ablaufverfolgung für diese Variablen enthält weitere Informationen ähnlich wie das folgende Beispiel zu den Fehlern, die ein Problem verursachen:

Git Clone-Fehlerinformationen durch Ausführen von Befehlen im ausführlichen Modus.

Weitere Informationen zu Git-Umgebungsvariablen finden Sie unter Git Internals – Umgebungsvariablen.

Ursache 1: Git kann keine Verbindung über den Proxyserver herstellen

Wenn Sie einen Proxyserver verwenden, die Git-Konfiguration jedoch nicht für die Verbindung über den Proxyserver festgelegt ist, werden möglicherweise die Fehlermeldungen 407 oder 502 angezeigt. Dieses Problem tritt auch auf, wenn die Verbindung nicht über den Proxyserver hergestellt werden kann und Fehler wie „Zugriff auf <your github url> nicht möglich:“ oder „Host github.com konnte nicht aufgelöst werden“ angezeigt werden.

Lösung: Konfigurieren von Git für die Verwendung des Proxyservers

Führen Sie die Ausführung git config --list aus, um eine Liste aller Git-Konfigurationen auf dem System abzurufen, und überprüfen Sie, ob der Proxyserver verwendet wird.

Wenn mehrere Konfigurationsdateien wie Repository oder Systemstamm angezeigt werden, führen Sie den git config --list --show-origin Befehl aus, und sehen Sie dann den Pfad, von dem Git die Konfigurationsinformationen abruft.

Wenn Sie in der Konfigurationsliste keinen Proxyserver finden, führen Sie den git config --global Befehl aus, um einen Proxyserver in der Konfiguration festzulegen.

Beispiel: http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port.

Um einen bestimmten Proxy für einige URLs zu verwenden, konfigurieren Sie die Proxy-URL in Git-Konfigurationsunterabschnitt wie http.<url\>.key notation: im folgenden Beispiel:

git config --global http.https://domain.com.proxy http://proxyUsername:proxyPassword@proxy.server.com:port

Wenn der Proxy verwendet httpswird, legen Sie die Git-Konfiguration mit https proxy-URL im obigen Beispiel fest. Andernfalls behalten Sie http.

Weitere Informationen zur Git-Konfiguration finden Sie in der Git Config-Dokumentation.

Ursache 2: Git verwendet ein lokales selbstsigniertes Zertifikat

Wenn Git ein lokales selbstsigniertes Zertifikat verwendet, wird möglicherweise der Fehler „SSL-Zertifikatproblem: Das lokale Ausstellerzertifikat kann nicht abgerufen werden“ angezeigt.

Lösung 1: Deaktivieren der TLS/SSL-Überprüfung

Wenn Sie einen lokalen Team Foundation Server (TFS) installiert haben und die von Git ausgeführte TLS/SSL-Überprüfung deaktivieren möchten, führen Sie den folgenden Befehl aus:

git config --global http.sslVerify false

Lösung 2: Konfigurieren der selbstsignierten Zertifikate in Git

Wenn Sie die TLS/SSL-Überprüfung fortsetzen möchten, die Git ausführt, führen Sie die folgenden Schritte aus, um das Stammzertifikat in der lokalen Git hinzuzufügen:

  1. Exportieren Sie das Stammzertifikat als Base-64-codierte X.509 (. CER)-Datei mit den folgenden Schritten:

    1. Öffnen Sie den Microsoft Edge-Browser, und geben Sie die URL Ihres TFS-Servers in der Adressleiste ein, z https://<servername>/tfs. B. .

    2. Wählen Sie auf der Adressleiste das Symbol aus, und wählen Sie dann den sicheren Link "Verbindung" aus.

    3. Wählen Sie das Symbol aus, um das Zertifizierungsfenster zu öffnen.

    4. Wählen Sie auf der Registerkarte "Zertifizierungspfad " das obere linke Zertifikat aus, bei dem es sich um das Stammzertifikat handelt.

      Wählen Sie im Zertifizierungsfenster die Registerkarte

    5. Wählen Sie "Zertifikat anzeigen" aus, um das Zertifikatfenster für das Stammzertifikat zu öffnen.

    6. Wählen Sie auf der Registerkarte "Details" die Option "In Datei kopieren" aus.

      Wählen Sie im Fenster

    7. Wählen Sie im Zertifikatexport-Assistenten "Weiter" und dann "Base-64-codierte X.509" aus (. CER) Dateiformat, das exportiert werden soll.

      Auswählen des Dateiformats im Zertifikatexport-Assistenten.

    8. Speichern Sie das Stammzertifikat auf dem lokalen Datenträger.

  2. Konfigurieren Sie Git so, dass das lokale Verzeichnis für den Speicher für Git-Zertifikate verwendet wird, indem Sie die folgenden Schritte ausführen:

    1. Wechseln Sie zum Pfad "C:\Programme\Git\bin" auf dem lokalen Datenträger, und erstellen Sie dann eine Kopie der Datei "curl-ca-bundle.crt ".

      Notiz

      • Wenn Sie Git für Windows (msysgit) auf Ihrem Gerät installieren, wird eine curl-ca-bundle.crt-Datei im Verzeichnis "Programme" gespeichert. Diese Datei ist der Stammzertifikatspeicher für git.exe, der alle Zertifikate enthält, denen Git vertraut.
      • Die Datei curl-ca-bundle.crt , die auf Gerätebasis gespeichert wird, ist privat für Ihren lokalen Windows-Client. Die Textdatei hat UNIX(\n) Zeilenabschluss s.
      • In der Git für Windows 2.x-Reihe ändert sich der Pfad zu "C:\Programme (x86)\Git\mingw32\ssl\certs\ca-bundle.crt " oder "C:\Programme\Git\mingw64\ssl\certs\ca-bundle.crt". Wenn Sie einen 32-Bit-Windows-Client verwenden, können Sie den Ordnerpfad so beheben, dass der Teil "Programme" nicht mit x86 angezeigt wird.
    2. Kopieren Sie die Datei curl-ca-bundle.crt in Ihr Benutzerprofilverzeichnis (C:\Users\<Yourname>). Oder führen Sie einen Kopierbefehl ähnlich dem copy "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt" C:\Users\<yourname> Beispiel aus.

    3. Führen Sie den folgenden Befehl aus, um Git so zu konfigurieren, dass eine lokale Kopie des Zertifikatspeichers von Ihrem Windows-Client verwendet wird:

      git config --global http.sslCAInfo C:/Users/<yourname>/curl-ca-bundle.crt

  3. Fügen Sie das exportierte Stammzertifikat zur lokalen Kopie des Git-Zertifikatspeichers hinzu, indem Sie die folgenden Schritte ausführen:

    1. Öffnen Sie das exportierte Stammzertifikat im Editor, und kopieren Sie dann den gesamten Inhalt in die Zwischenablage.

    2. Öffnen Sie die Datei curl-ca-bundle.crt, indem Sie den Pfad "C:/Users/yourname>/<curl-ca-bundle.crt" in einem Text-Editor öffnen.

      Tipp

      Sie können das Unix2dos-Tool verwenden, um die Zeilenabschluss in der Datei von "\n" in "\r\n" zu ändern und die Datei im Editor zu öffnen.

    3. Fügen Sie am Ende einen Eintrag für das Stammzertifikat hinzu, und fügen Sie dann den Zertifikatinhalt in die Datei curl-ca-bundle.crt ein.

    4. Speichern Sie die Datei curl-ca-bundle.crt .

    5. Führen Sie den Klonvorgang aus, um zu überprüfen, ob der SSL-Fehler behoben ist.

Ursache 3: Authentifizierungsfehler oder Cacheprobleme bei Anmeldeinformationen

Wenn sich Ihr Kontoname oder Domänenkennwort geändert hat oder es zu einem Authentifizierungsfehler kommt, kann ein Problem mit der Authentifizierung und dem Anmeldeinformationscache bestehen.

Lösung: Zurücksetzen des Git-Anmeldeinformations-Managers (GCM)

Um die Cacheprobleme mit dem Authentifizierungsfehler oder anmeldeinformationen zu beheben, führen Sie zunächst die Prüfliste zur Problembehandlung aus, um die Fehlerinformationen abzurufen, und führen Sie dann die folgenden Schritte aus:

  1. Führen Sie den git config --list Befehl aus, und überprüfen Sie dann, ob Sie git Credentials Manager (GCM) verwenden. Wenn die credential.helper Einstellung auf "Manager" festgelegt ist, wird GCM verwendet.
  2. Setzen Sie das GCM zurück, indem Sie die folgenden Schritte ausführen:
    1. Führen Sie den git config --global --unset credential.helper Befehl aus, um das GCM abzugleichen.
    2. Führen Sie den git config credential.helper manager Befehl aus, um den GCM-Zurück festzulegen. Führen Sie alternativ die folgenden Schritte aus, um zuerst den Anmeldeinformationencache zu löschen:
      1. Wenn sie nicht festgelegt ist, suchen Sie in der Windows-Suche nach Anmeldeinformations-Manager , wählen Sie " Öffnen" aus, und entfernen Sie dann alle Anmeldeinformationen für ein Git-Repository.
      2. Wechseln Sie zu %localappdata%/GitCredentialManager-Pfad , und löschen Sie dann die Datei "tenant.cache" .
      3. Legen Sie das GCM zurück, indem Sie den git config credential.helper manager Befehl ausführen.
  3. Führen Sie den Klonvorgang aus, um zu überprüfen, ob das Problem behoben ist.

Hinweis: Je nach Der Version von Git für Windows wäre der credential.helper Wert unterschiedlich. Details finden Sie in der folgenden Tabelle:

Versionen von Git für Windows Git Credential Manager für Windows Git Credential Manager Core Git Credential Manager (umbenannt aus GCM Core)
2.27 und früher manager
2.28 bis 2.33.0 manager (optional) manager-core(optional)
2.33.1 bis 2.34.0 manager-core
2.34.1 bis 2.38 manager-core
2.39 und höher manager