Partager via


Résoudre les problèmes liés au clonage ou à l’envoi (push) Git vers un référentiel Azure DevOps

Cet article décrit les problèmes qui peuvent se produire lorsque vous essayez d’effectuer un clone Git ou une fonction Push Git vers un dépôt Azure DevOps.

S’applique à : Azure DevOps Services, Azure DevOps Server

Problèmes lors de l’exécution d’un clone Git ou d’un push Git vers les référentiels Azure DevOps

Lorsque vous essayez de cloner ou d’envoyer (push) un référentiel dans GitHub, certains problèmes liés à la configuration du proxy, au certificat SSL ou au cache d’informations d’identification peuvent entraîner l’échec de l’opération de clonage Git.

Liste de contrôle pour la résolution des problèmes

Pour identifier la cause des problèmes, effectuez les étapes suivantes :

  1. Activez le suivi détaillé pour les commandes Git que vous exécutez.

  2. Définissez les variables suivantes dans la séquence et exécutez les commandes Git pour chaque variable définie pour obtenir plus d’informations sur les erreurs.

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

Le niveau de traçage défini pour ces variables fournit plus d’informations similaires à l’exemple suivant sur les erreurs qui provoquent un problème :

Informations d’erreur de clone Git en exécutant des commandes en mode détaillé.

Pour en savoir plus sur les variables d’environnement Git, consultez Git Internals - Environment Variables.

Cause 1 : Git ne peut pas se connecter via le serveur proxy

Si vous utilisez un serveur proxy mais que la configuration Git n’est pas définie pour vous connecter via le serveur proxy, vous pouvez voir les messages d’erreur 407 ou 502. Ce problème se produit également lorsque la connexion ne peut pas s’établir via le serveur proxy et que vous voyez des erreurs similaires à « Impossible d’accéder à<your github url> : » ou « Impossible de résoudre l’hôte github.com ».

Solution : configurer Git pour utiliser le serveur proxy

Exécutez git config --list pour obtenir la liste de toutes les configurations Git sur le système et vérifier si le serveur proxy est en cours d’utilisation.

Si vous voyez plusieurs fichiers de configuration tels que le dépôt ou la racine du système, exécutez la git config --list --show-origin commande, puis consultez le chemin d’accès à partir duquel Git récupère les informations de configuration.

Si vous ne trouvez pas de serveur proxy dans la liste des configurations, exécutez la git config --global commande pour définir un serveur proxy dans la configuration.

Par exemple, http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port.

Pour utiliser un proxy spécifique pour certaines URL, configurez l’URL du proxy dans la sous-section de configuration Git comme http.<url\>.key notation: dans l’exemple suivant :

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

Si le proxy utilise https, définissez la configuration Git avec https l’URL du proxy dans l’exemple ci-dessus. Sinon, conservez http.

Pour plus d’informations sur la configuration Git, consultez la documentation de configuration Git.

Cause 2 : Git utilise un certificat auto-signé local

Si Git utilise un certificat auto-signé local, vous pouvez voir l’erreur « Problème de certificat SSL : impossible d’obtenir un certificat d’émetteur local ».

Solution 1 : Désactiver la vérification TLS/SSL

Si vous avez installé un Team Foundation Server (TFS) local et si vous souhaitez désactiver la vérification TLS/SSL effectuée par Git, exécutez la commande suivante :

git config --global http.sslVerify false

Solution 2 : Configurer les certificats auto-signés dans Git

Si vous souhaitez poursuivre la vérification TLS/SSL effectuée par Git, procédez comme suit pour ajouter le certificat racine dans git local :

  1. Exportez le certificat racine en tant que X.509 codé en base 64 (. Fichier CER) en procédant comme suit :

    1. Ouvrez le navigateur Microsoft Edge et entrez l’URL de votre serveur TFS dans la barre d’adresses, par exemple https://<servername>/tfs.

    2. Dans la barre d’adresses, sélectionnez l’icône, puis sélectionnez le lien sécurisé de connexion.

    3. Sélectionnez l’icône pour ouvrir la fenêtre Certification .

    4. Sous l’onglet Chemin de certification, sélectionnez le certificat en haut à gauche, qui est le certificat racine.

      Sélection de l’onglet Chemin de certification dans la fenêtre Certification.

    5. Sélectionnez Afficher le certificat pour ouvrir la fenêtre Certificat pour le certificat racine.

    6. Sous l’onglet Détails , sélectionnez Copier dans fichier... .

      Sélectionnez l’onglet Détails dans la fenêtre Certification.

    7. Dans l’Assistant Exportation de certificat, sélectionnez Suivant, puis encodé en base 64 X.509 (. Format de fichier CER à exporter.

      Sélection du format de fichier dans l’Assistant Exportation de certificat.

    8. Enregistrez le certificat racine sur le disque local.

  2. Configurez Git pour utiliser un répertoire local pour le magasin de certificats Git en procédant comme suit :

    1. Accédez au chemin C :\Program Files\Git\bin sur votre disque local, puis effectuez une copie du fichier curl-ca-bundle.crt .

      Note

      • Lorsque vous installez Git pour Windows (msysgit) sur votre appareil, un fichier curl-ca-bundle.crt est stocké dans votre répertoire Program Files. Ce fichier est le magasin de certificats racine pour git.exe qui contient tous les certificats approuvés par Git.
      • Le fichier curl-ca-bundle.crt , qui stocke par appareil, est privé pour votre client Windows local. Le fichier texte comporte des fin de ligne UNIX (\n).
      • Dans la série Git pour Windows 2.x, le chemin d’accès passe à C :\Program Files (x86)\Git\mingw32\ssl\certs\ca-bundle.crt ou C :\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt. Si vous utilisez un client Windows 32 bits, vous pouvez corriger le chemin du dossier de sorte que la partie Program Files n’apparaît pas avec x86.
    2. Copiez le fichier curl-ca-bundle.crt dans votre répertoire de profil utilisateur (C :\Users\<yourname>). Ou exécutez une commande de copie similaire à l’exemple copy "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt" C:\Users\<yourname> .

    3. Exécutez la commande suivante pour configurer Git pour utiliser la copie locale du magasin de certificats à partir de votre client Windows :

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

  3. Ajoutez le certificat racine exporté à la copie locale du magasin de certificats Git en procédant comme suit :

    1. Ouvrez le certificat racine exporté dans le Bloc-notes, puis copiez tout le contenu dans le Presse-papiers.

    2. Ouvrez le fichier curl-ca-bundle.crt en accédant au chemin C :/Users/<yourname>/curl-ca-bundle.crt dans un éditeur de texte.

      Conseil

      Vous pouvez utiliser l’outil unix2dos pour modifier les fin de ligne s du fichier de \n à \r\n et être en mesure d’ouvrir le fichier dans le Bloc-notes.

    3. Ajoutez une entrée pour le certificat racine à la fin, puis collez le contenu du certificat dans le fichier curl-ca-bundle.crt .

    4. Enregistrez le fichier curl-ca-bundle.crt .

    5. Effectuez l’opération de clonage pour vérifier si l’erreur SSL est résolue.

Cause 3 : Erreurs d’authentification ou problèmes de cache d’informations d’identification

Si le nom de votre compte ou votre mot de passe de domaine a changé, ou si vous obtenez une erreur d’authentification, il peut y avoir un problème d’authentification et de cache d’informations d’identification.

Solution : Réinitialiser le gestionnaire d’informations d’identification Git (GCM)

Pour résoudre les problèmes liés à l’erreur d’authentification ou au cache des informations d’identification, commencez par suivre la liste de contrôle de résolution des problèmes pour obtenir les informations d’erreur, puis procédez comme suit :

  1. Exécutez la git config --list commande, puis vérifiez si vous utilisez Git Credentials Manager (GCM). Si le credential.helper gestionnaire est défini, GCM est en cours d’utilisation.
  2. Réinitialisez le GCM en procédant comme suit :
    1. Exécutez la git config --global --unset credential.helper commande pour annuler l’ensemble du GCM.
    2. Exécutez la git config credential.helper manager commande pour réactiver le GCM. Vous pouvez également suivre ces étapes pour supprimer d’abord le cache des informations d’identification :
      1. Lorsque vous n’avez pas défini, recherchez le Gestionnaire d’informations d’identification dans la recherche Windows, sélectionnez Ouvrir, puis supprimez les informations d’identification correspondant à un référentiel Git.
      2. Accédez au chemin %localappdata%/GitCredentialManager , puis supprimez le fichier tenant.cache .
      3. Rétablissez le GCM en exécutant la git config credential.helper manager commande.
  3. Effectuez l’opération de clonage pour vérifier si le problème est résolu.

Remarque : Selon la version de Git pour Windows, la credential.helper valeur serait différente. Pour plus de détails, consultez le tableau suivant :

Versions de Git pour Windows GIT Credential Manager pour Windows Base du Gestionnaire d’informations d’identification Git Gestionnaire d’informations d’identification Git (renommé de GCM Core)
2.27 et versions antérieures manager
2.28 à 2.33.0 manager (facultatif) manager-core(facultatif)
2.33.1 à 2.34.0 manager-core
2.34.1 à 2.38 manager-core
2.39 et versions ultérieures manager