3
respostas

Problemas com o git clone

O comando git clone nunca funciona. Tentei a versão como exibida na aula e também com o caminho entre aspas, por ter um espaço no mesmo, mas nada dá certo, sempre retornando a seguinte mensagem:


Cloning into 'servidor'...
fatal: 'C:/User/João Onofre/Documents/git-e-github/servidor/' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

As outras entradas tentadas foram:

$ git clone /c/user/
$ git clone /C:/User/
$ git clone C:/User/
$ git clone "C:/User/João Onofre/"
$ git clone "C:/User/João Onofre/Documents/git-e-github/servidor/"
$ git clone "/c/User/João Onofre/Documents/git-e-github/servidor/"

Todas retornam a mesma mensagem descrita no início deste tópico. Alguém sabe como resolver?

3 respostas

Oi, João! Tudo certo?

Este erro pode acontecer quando tentamos clonar uma pasta que, na realidade, não é um repositório do tipo bare. Sabendo desse ponto, precisaremos verificar se “servidor” foi inicializado como um repositório com a flag --bare e, a partir disso, seguir com os próximos passos:

Nosso primeiro ponto de atenção é verificar se a pasta “servidor” foi iniciado a partir do comando git init. Quando isso acontece, criamos um repositório comum, o qual não poderá receber commits através do git push, por exemplo. Nele, haverá a pasta de nome “.git”, que deve ser excluída.

Por padrão, a pasta “.git” fica oculta quando tentamos vê-la no explorador de arquivos. Caso esteja utilizando o sistema operacional Windows, para excluí-la, teremos que clicar em “Visualizar”, selecionar a opção “Mostrar” e, por fim, clicar em “Itens ocultos”, como mostro abaixo:

Recorte de captura de tela do explorador de arquivos do Windows. Menu superior em que há os seguintes itens com conteúdo textual: “Novo”, “Classificar” e “Visualizar”. O último item, em que está escrito “Visualizar”, foi destacado por uma borda vermelha

Recorte de captura de tela do explorador de arquivos do Windows. É apresentado duas listas suspensas. A primeira lista, na parte superior esquerda, contém os itens: “Ícones extra grandes”, “ícones grandes”, “Ícones médios”, “Ícones pequenos”, “Lista”, “Detalhes”, “Blocos”, “Conteúdo”, “Exibição compacta” e “Mostrar”; o último item, de cima para baixo, em que está escrito “Mostrar”, foi destacado por uma borda vermelha. Na lista suspensa localizada na porção inferior direita da tela, apresentam-se itens referentes à opção “Mostrar”; os itens da lista são: “Painel de navegação”, “Painel de detalhes”, “Painel de visualização”, “Caixas de seleção de item”, “Extensões de nomes de arquivos” e “Itens ocultos”; o último item, de cima para baixo, em que está escrito “Itens ocultos”, foi destacado por uma borda vermelha.

Feito isso, “.git” irá aparecer na pasta “servidor”. Basta selecioná-lo e excluí-lo;

Depois da exclusão ou caso a pasta “.git” não exista, podemos:

  • Entrar na pasta “servidor” via terminal: uma maneira rápida de fazer isso é localizar a pasta "servidor" no explorador de arquivos do seu computador e selecionar a opção "Git bash here", como mostro abaixo:

    Gif. No navegador de arquivos do Windows. A pasta se chama git, e há um arquivo tipo html chamado git, também. O botão direito do mouse é clicado, e surge o menu. A última opção, mostrar mais opções, é selecionada. Um novo menu surge, e a opção Git Bash Here é selecionada. O prompt de comando abre, mostrando o caminho da pasta

  • Tornar a pasta "servidor" um repositório --bare:

      git init --bare

Ao fim, podemos retornar à pasta em que estávamos tentando realizar a clonagem. Caso esteja seguindo os mesmos nomes usados pelo instrutor, iremos para a pasta “ana”. Dentro dela, já podemos executar o comando abaixo:

git clone 'C:/Users/João Onofre/Documents/git-e-github/servidor/' projeto

João, note que, ao fim do comando, há a palavra “projeto”. Adicioná-la não é obrigatório, apenas estamos informando que os conteúdos presentes em “servidor” serão armazenados em uma pasta de nome diferente, a pasta “projeto” (se não fizéssemos isso, uma nova pasta chamada “servidor” seria criada dentro do diretório “ana”).

Espero tê-lo ajudado. Caso surja alguma dúvida após minha explicação ou ao longo dos seus estudos, sinta-se confortável para postar no fórum!

Forte abraço e até mais.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Muito obrigado, Andrieli. Eu acabei fazendo tudo outra vez, alterando o diretório e não sei porque acabou dando certo. Porém, ao aplicar o comando 'git push local master' aconteceu o seguinte:

!ssh: Could not resolve hostname c: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Help, please! Já 'tô ficando maluco com esse trem, rss. Grato

Oi, João! Tudo bem?

Quando estamos estudando algo, a aparição de erros é comum, isso faz parte da nossa jornada de aprendizagem! Fico feliz que tenha se sentido confortável em compartilhar no fórum que um novo problema surgiu. Vamos resolvê-lo juntos, beleza?

Para compreender o que aconteceu, podemos analisar separadamente as duas mensagens que surgiram em seu Git bash. Para acompanhar a ideia, veja a imagem abaixo:

Recorte de captura de tela do Git bash. Na parte superior, há uma barra azul com a logo do Git e o caminho de uma pasta. Abaixo, há a frase “fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. Abaixo, é destacado, pelo algarismo “um”, o trecho contendo três partes: a primeira apresenta a descrição do dispositivo, o caminho de uma pasta e a palavra “(master)”; a segunda contém o comando “git push local master”; na terceira há a mensagem “fatal: not a git repository (or any of the parent directories): .git”. Na parte inferior da imagem, está destacado, pelo algarismo dois, um trecho com 3 partes: a primeira apresenta a descrição do dispositivo, o caminho de uma pasta e a palavra “(master)”; a segunda expõe o comando “git push local master”; a terceira tem uma borda vermelha e diz: “ssh: Could not resolve hostname c: Name or service not known. Fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists".

  1. A primeira mensagem, destacada pelo número 1, indica que estamos tentando executar um comando Git em uma pasta que não foi inicializada com git init. Contudo, se olharmos mais de perto, podemos perceber que, ao lado do caminho “~/Desktop/repositorio-git/joao” está escrito “master”, indicando que aquela pasta é sim um repositório. Possivelmente, ao executar o comando git push local master , um bug aconteceu, desencadeando o erro.
  2. Por sua vez, a segunda mensagem (destacada pelo número 2) pode ter acontecido como uma consequência do problema anterior. Outra causa para isso é termos adicionado um caminho que não confere com o caminho efetivo da pasta “servidor”.

Visto que existem vários fatores para o mesmo problema, podemos tentar algumas soluções, observe:

  1. Redefinir o endereço da pasta “servidor”:

    1.1 - Para que o git consiga reconhecer o caminho da pasta “servidor”, podemos ir até ela (utilizando o “Git Bash Here”, como vimos no Gif da minha outra resposta) e digitar o comando abaixo estando dentro dela:

     pwd

    1.2 - Dessa forma, teremos como resultado o caminho completo da pasta servidor. Basta selecioná-lo e copiá-lo:

    Gif da tela do Git Bash. Na parte superior, há uma linha informando o dispositivo em que se está utilizando o Git bash, precedido pelo caminho de uma pasta e pela descrição “(BARE: master)”. Abaixo, é digitado o comando “pwd”. Assim, exibe-se o caminho completo da pasta em que se está. Ao final, apresenta-se de novo a linha informando o dispositivo, o caminho de uma pasta e a descrição “(BARE: master)”

    1.3 - Depois disso, podemos retornar à pasta “joao” e digitar o comando abaixo, que irá atualizar o caminho do nosso repositório de nome “local”:

     git remote set-url local "caminho-do-repositorio"

    Observação: onde encontra-se “caminho-do-repositorio”, substituir pelo caminho que copiamos anteriormente, englobando-o por aspas duplas. Para colá-lo, basta clicar com o botão direito do mouse e, em seguida, selecionar a opção “Paste”. 1.4 - Ao fim, basta tentar executar o push novamente, desta forma:

     git push local master
  2. Caso a primeira solução não funcione, podemos tentar executar os passos abaixo:

    2.1 - Excluir a pasta “joao” e criá-la de novo;

    2.2 - Acessar a pasta “joao” pelo Git bash;

    2.3 - Inicializá-la como um repositório Git:

     git init

    2.4 - Adicionar o nosso repositório remoto:

     git remote add local "caminho-do-repositorio"

    Observação: onde encontra-se “caminho-do-repositorio”, substituir pelo caminho da pasta servidor. Neste momento, podemos seguir com os mesmos passos que vimos anteriormente (acessar a pasta “servidor”, digitar o comando pwd, copiar o caminho e colá-lo entre aspas duplas).

    2.5 - Criar um arquivo de teste com o comando abaixo:

     touch teste.txt

    2.6 - Adicionar a alteração feita e, logo em seguida, commita-la:

     git add .
     git commit -u "Mensagem descrita sobre a alteração"

    2.7 - Finalizar o processo fazendo push:

     git push local master

João, espero tê-lo ajudado. Qualquer dúvida, lembre-se que você pode contar com o fórum. Estarei aqui para resolvermos juntos o que for preciso!

Abraços!