Compartilhar via


Solucionar problemas quando o clone ou push do Git falha em um repositório do Azure DevOps

Este artigo discute problemas que podem ocorrer quando você tenta executar o clone do Git ou a função de push do Git em um repositório do Azure DevOps.

Aplica-se a: Azure DevOps Services, Azure DevOps Server

Problemas ao executar o clone do Git ou o push do Git para os repositórios do Azure DevOps

Quando você tenta clonar ou enviar um repositório no GitHub, alguns problemas com a configuração do proxy, o certificado SSL ou o cache de credenciais podem fazer com que a operação de clonagem do Git falhe.

Lista de verificação de solução de problemas

Para identificar a causa dos problemas, siga estas etapas:

  1. Habilite o rastreamento detalhado para definir o nível detalhado de rastreamento para os comandos do Git que você está executando.

  2. Defina as variáveis a seguir em sequência e execute os comandos do Git para cada variável definida para obter mais informações sobre os erros.

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

O nível de rastreamento definido para essas variáveis fornece mais informações semelhantes ao exemplo a seguir sobre os erros que causam o problema:

Informações de erro de clonagem do Git executando comandos no modo detalhado.

Para saber mais sobre variáveis de ambiente do Git, consulte Internos do Git – Variáveis de ambiente.

Causa 1: o Git não pode se conectar por meio do servidor proxy

Se você estiver usando um servidor proxy, mas a configuração do Git não estiver definida para se conectar por meio do servidor proxy, poderá ver as mensagens de erro 407 ou 502. Esse problema também ocorre quando a conexão não pode ser estabelecida por meio do servidor proxy e você vê os erros semelhantes a "não é possível acessar <your github url>:" ou "não foi possível resolver o host github.com".

Solução: configurar o Git para usar o servidor proxy

Execute git config --list para obter uma lista de todas as configurações do Git no sistema e verifique se o servidor proxy está em uso.

Se você vir vários arquivos de configuração, como repositório ou raiz do sistema, execute o git config --list --show-origin comando e veja o caminho de onde o Git recupera as informações de configuração.

Se você não encontrar um servidor proxy na lista de configurações, execute o git config --global comando para definir um servidor proxy na configuração.

Por exemplo, http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port.

Para usar um proxy específico para algumas URLs, configure a URL do proxy na subseção de configuração do Git como http.<url\>.key notation: semelhante ao exemplo a seguir:

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

Se o proxy usar https, defina a configuração do Git com https a URL do proxy no exemplo acima. Caso contrário, mantenha http.

Para obter mais informações sobre a configuração do Git, consulte a documentação do Git Config.

Causa 2: o Git usa um certificado autoassinado local

Se o Git estiver usando um certificado autoassinado local, você poderá ver o erro "Problema de certificado SSL: não é possível obter o certificado do emissor local."

Solução 1: desative a verificação TLS/SSL

Se você instalou um TFS (Team Foundation Server) local e deseja desabilitar a verificação TLS/SSL que o Git executa, execute o seguinte comando:

git config --global http.sslVerify false

Solução 2: configurar os certificados autoassinados no Git

Se você quiser continuar a verificação TLS/SSL que o Git faz, siga estas etapas para adicionar o certificado raiz no Git local:

  1. Exporte o certificado raiz como X.509 codificado em Base-64 (. CER) seguindo estas etapas:

    1. Abra o navegador Microsoft Edge e insira a URL do servidor TFS na barra de endereços, como https://<servername>/tfs.

    2. Na barra de endereços, selecione o ícone e, em seguida, selecione o link A conexão é segura .

    3. Selecione o ícone para abrir a janela Certificação .

    4. Na guia Caminho de Certificação , selecione o certificado superior esquerdo, que é o certificado raiz.

      Selecionando a guia Caminho de Certificação na janela Certificação.

    5. Selecione Exibir certificado para abrir a janela Certificado do certificado raiz.

    6. Na guia Detalhes , selecione Copiar para arquivo... .

      Selecionando a guia Detalhes na janela Certificação.

    7. No Assistente de Exportação de Certificado, selecione Avançar e, em seguida, selecione X.509 codificado em Base-64 (. CER) a serem exportados.

      Selecionando o formato de arquivo no Assistente de Exportação de Certificado.

    8. Salve o certificado raiz no disco local.

  2. Configure o Git para usar o diretório local para o repositório de certificados Git seguindo estas etapas:

    1. Vá para o caminho C:\Program Files\Git\bin no disco local e faça uma cópia do arquivo curl-ca-bundle.crt .

      Observação

      • Quando você instala o Git para Windows (msysgit) em seu dispositivo, um arquivo curl-ca-bundle.crt é armazenado no diretório Arquivos de Programas. Esse arquivo é o repositório de certificados raiz do git.exe que contém todos os certificados em que o Git confia.
      • O arquivo curl-ca-bundle.crt , que é armazenado por dispositivo, é privado para o cliente Windows local. O arquivo de texto tem terminações de linha UNIX (\n).
      • Na série Git para Windows 2.x, o caminho será alterado para C:\Arquivos de Programas (x86)\Git\mingw32\ssl\certs\ca-bundle.crt ou C:\Arquivos de Programas\Git\mingw64\ssl\certs\ca-bundle.crt. Se você estiver usando um cliente Windows de 32 bits, poderá corrigir o caminho da pasta de forma que a parte Arquivos de Programas não apareça com x86.
    2. Copie o arquivo curl-ca-bundle.crt para o diretório de perfil do usuário (C:\Users\<yourname>). Ou execute um comando de cópia semelhante ao copy "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt" C:\Users\<yourname> exemplo.

    3. Execute o seguinte comando para configurar o Git para usar a cópia local do repositório de certificados do seu cliente Windows:

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

  3. Adicione o certificado raiz exportado à cópia local do repositório de certificados Git seguindo estas etapas:

    1. Abra o certificado raiz exportado no Bloco de Notas e copie todo o conteúdo para a área de transferência.

    2. Abra o arquivo curl-ca-bundle.crt acessando o caminho C:/Users/<yourname>/curl-ca-bundle.crt em um editor de texto.

      Dica

      Você pode usar a ferramenta unix2dos para alterar as terminações de linha no arquivo de \n para \r\n e ser capaz de abrir o arquivo no Bloco de Notas.

    3. Adicione uma entrada para o certificado raiz no final e cole o conteúdo do certificado no arquivo curl-ca-bundle.crt .

    4. Salve o arquivo curl-ca-bundle.crt .

    5. Execute a operação de clonagem para verificar se o erro de SSL foi resolvido.

Causa 3: erro de autenticação ou problemas de cache de credenciais

Se o nome da sua conta ou senha de domínio tiver sido alterado ou você está recebendo um erro de autenticação, poderá haver problemas de autenticação ou cache de credenciais.

Solução: redefinir o GCM (gerenciador de credenciais do Git)

Para resolver o erro de autenticação ou problemas de cache de credenciais, comece seguindo a lista de verificação de solução de problemas para obter as informações de erro e siga estas etapas:

  1. Execute o comando e verifique se você está usando o git config --list Git Credentials Manager (GCM). Se o credential.helper estiver definido como manager, o GCM estará em uso.
  2. Redefina o GCM seguindo estas etapas:
    1. Execute o git config --global --unset credential.helper comando para desconfigurar o GCM.
    2. Execute o git config credential.helper manager comando para definir o GCM de volta. Como alternativa, siga estas etapas para excluir o cache de credenciais primeiro:
      1. Quando a configuração não estiver definida, pesquise o Gerenciador de Credenciais na pesquisa do Windows, selecione Abrir e remova qualquer credencial que seja para um repositório Git.
      2. Vá para o caminho %localappdata%/GitCredentialManager e exclua o arquivo tenant.cache .
      3. Defina o GCM de volta executando o git config credential.helper manager comando.
  3. Execute a operação de clonagem para verificar se o problema foi resolvido.

Observação: dependendo da versão do Git para Windows, o credential.helper valor seria diferente. Para obter detalhes, consulte a tabela a seguir:

Versões do Git para Windows Gerenciador de credenciais do Git para Windows Núcleo do Gerenciador de Credenciais do Git Gerenciador de credenciais do Git (renomeado de GCM Core)
2.27 e anteriores manager
2.28 até 2.33.0 manager (opcional) manager-core(opcional)
2.33.1 até 2.34.0 manager-core
2.34.1 até 2.38 manager-core
2.39 e posterior manager