Skip to main content

Solucionar problemas de erros de clonagem

Se você tiver problemas para clonar um repositório, verifique estes erros mais comuns.

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://HOSTNAME/USER/REPO.git/info/refs?service=git-receive-pack
> fatal: HTTP request failed
> Error: The requested URL returned error: 403 while accessing
> https://HOSTNAME/USER/REPO.git/info/refs
> fatal: HTTP request failed
> Error: https://HOSTNAME/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 Enterprise Server, 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 sua instância do GitHub Enterprise Server.

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/cocoareactive.git (fetch)
> origin  https://github.com/ghost/cocoareactive.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".

Verificar suas permissões

Quando for solicitado um nome e senha, certifique-se de usar uma conta que tenha acesso ao repositório.

Tip

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, você não tem permissão para acessá-lo ou o sua instância do GitHub Enterprise Server está no modo privado. Existem algumas soluções para esse erro, dependendo da causa.

Verificar a ortografia

Erros de digitação acontecem. Se você tentar clonar git@HOSTNAME: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 Enterprise Server. Verifique isso digitando o seguinte na linha de comando:

$ ssh -T git@HOSTNAME
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.

Para obter mais informações, confira Como adicionar uma nova chave SSH à sua conta do GitHub.

Verifique se sua instância está em modo privado

Caso o administrador do site tenha habilitado o modo privado na sua instância do GitHub Enterprise, os clones anônimos em git:// ficam desabilitados. Caso não consiga clonar um repositório, contate o administrador de seu site.

Verifique se o repositório realmente existe

Se nada resolver o problema, confirme se o repositório realmente existe no sua instância do GitHub Enterprise Server. 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 sua instância do GitHub Enterprise Server.

É simples identificar esse erro; o Git avisará quando você tentar clonar o repositório:

$ git clone https://HOSTNAME/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 sua instância do GitHub Enterprise Server. 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'