Erros de clonagem HTTPs
Existem alguns erros comuns ao usar HTTPS com o Git. Esses erros normalmente indicam que você tem uma versão antiga do Git ou que você não tem acesso ao repositório.
Segue aqui um exemplo de erro HTTPS que você pode receber:
> error: The requested URL returned error: 401 while accessing
> https://github.com/USER/REPO.git/info/refs?service=git-receive-pack
> fatal: HTTP request failed
> Error: The requested URL returned error: 403 while accessing
> https://github.com/USER/REPO.git/info/refs
> fatal: HTTP request failed
> Error: https://github.com/USER/REPO.git/info/refs not found: did you run git
> update-server-info on the server?
Verifique sua versão do Git
Não há uma versão mínima necessária do Git para interagir com GitHub, mas achamos que a versão 1.7.10 é uma versão estável e confortável, e que está disponível em muitas plataformas. Você sempre pode baixar a última versão no site do Git.
Confirme que o remote está correto
O repositório do qual você está tentando fazer fetch precisa existir no GitHub.com, e a URL diferencia maiúsculas de minúsculas.
Encontre a URL do repositório local abrindo a linha de comando e digitando git remote -v
:
$ git remote -v
# View existing remotes
> 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
# Change the 'origin' remote's URL
$ git remote -v
# Verify new remote URL
> origin https://github.com/ghost/ReactiveCocoa.git (fetch)
> origin https://github.com/ghost/ReactiveCocoa.git (push)
Como alternativa, você pode alterar a URL por meio do nosso aplicativo do GitHub Desktop.
Forneça um token de acesso
Para acessar o GitHub, você precisa fazer a autenticação com um personal access token em vez de sua senha. Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal".
Se você estiver acessando uma organização que usa o SSO do SAML e usando um personal access token (classic), será necessário autorizar o personal access token para acessá-la antes de autenticar-se. Para obter mais informações, confira "Sobre a autenticação com logon único de SAML" e "Autorizar o uso de um token de acesso pessoal para uso com logon único SAML".
Verificar suas permissões
Quando for solicitado um nome e senha, certifique-se de usar uma conta que tenha acesso ao repositório.
Dica: se não quiser inserir suas credenciais toda vez que interagir com o repositório remoto, ative o cache de credenciais. Se você já está usando o cache de credenciais, certifique-se de que o seu computador tem as credenciais corretas armazenadas em cache. Credenciais incorretas ou desatualizadas causarão falha na autenticação.
Substitua por SSH
Se você configurou as chaves SSH previamente, é possível usar a URL clone SSH em vez de HTTPS. Para obter mais informações, confira "Sobre repositórios remote".
Erro: repositório não encontrado
Se você receber esse erro ao clonar um repositório, isso significará que o repositório não existe ou que você não tem permissão para acessá-lo. Existem algumas soluções para esse erro, dependendo da causa.
Verificar a ortografia
Erros de digitação acontecem. Se você tentar clonar git@github.com:owner/repotile.git
, mas o repositório for realmente chamado owner/repoti1e
, você receberá esse erro.
Para evitar o erro ao clonar, sempre copie e cole a URL clone da página do repositório. Para obter mais informações, confira "Clonar um repositório".
Para atualizar o repositório remoto em um repositório existente, confira "Gerenciar repositórios remote".
Verifique as permissões
Se você está tentando clonar um repositório privado, mas não tem permissão para visualizar o repositório, ocorrerá esse erro.
Assegure-se de ter acesso ao repositório como:
- Proprietário do repositório
- Um colaborador no repositório
- Um membro de uma equipe que tem acesso ao repositório (se o repositório pertence a uma organização)
Verifique seu acesso SSH
Em raras circunstâncias, você pode não ter o devido acesso SSH a um repositório.
Confirme que a chave SSH em uso está associada a sua conta pessoal em GitHub. Verifique isso digitando o seguinte na linha de comando:
$ ssh -T git@github.com
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.
Se o repositório pertencer a uma organização e você estiver usando uma chave SSH gerada por um OAuth app, o acesso ao OAuth app poderá ter sido restringido por um proprietário da organização. Para obter mais informações, confira "Sobre as restrições de acesso do aplicativo OAuth".
Para obter mais informações, confira Como adicionar uma nova chave SSH à sua conta do GitHub.
Verifique se o repositório realmente existe
Se nada resolver o problema, confirme se o repositório realmente existe no GitHub.com. Caso você esteja tentando fazer push para um repositório que não existe, você receberá essa mensagem de erro.
Erro: HEAD remote faz referência a um ref inexistente, não é possível fazer checkout
O erro ocorre se o branch padrão de um repositório foi excluído no GitHub.com.
É simples identificar esse erro; o Git avisará quando você tentar clonar o repositório:
$ git clone https://github.com/USER/REPO.git
# Clone a repo
> 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.
Para corrigir o erro, você precisará ser o administrador do repositório no GitHub.com. O ideal será alterar o branch padrão do repositório.
Depois de fazer isso, você obterá uma lista de todos os branches disponíveis a partir da linha de comando:
$ git branch -a
# Lists ALL the branches
> remotes/origin/awesome
> remotes/origin/more-work
> remotes/origin/new-main
Em seguida, mude para o novo branch:
$ git checkout new-main
# Create and checkout a tracking branch
> Branch new-main set up to track remote branch new-main from origin.
> Switched to a new branch 'new-main'