10
respostas

[Dúvida] Erro de link

Quando eu vou linkar o meu repositório local com o remoto e adiciono a chave, retorna um erro que diz: acesso negado, você não possui as credenciais. Nunca tive esse problema, o que será que está acontecendo?

10 respostas

Oi, Pedro, tudo bem?

O problema que você está enfrentando está relacionado a autenticação ao tentar linkar seu repositório local com o remoto no GitHub. Isso pode acontecer por alguns motivos. Uma possível solução seria certifique-se de que o Git está configurado com seu nome de usuário e e-mail corretos:

git config --global user.name "seu_nome"
git config --global user.email "seu_email@example.com"

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

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

Please enter the commit message for your changes. Lines starting

with '#' will be ignored, and an empty message aborts the commit.

On branch main

Changes to be committed:

modified: package-lock.json

modified: package.json

modified: public/index.html

deleted: src/App.css

deleted: src/App.test.tsx

deleted: src/App.tsx

new file: src/components/formulario/Botao/index.tsx

new file: src/components/formulario/Botao/style.scss

new file: src/components/formulario/Formulario/index.tsx

new file: src/components/formulario/Formulario/style.scss

new file: src/components/lista/index.tsx

new file: src/components/lista/style.scss

modified: src/index.css

modified: src/index.tsx

deleted: src/logo.svg

new file: src/pages/App.tsx

new file: src/pages/index.scss

deleted: src/reportWebVitals.ts

deleted: src/setupTests.ts

Fui tentar por outro meio e retornou esse erro

Oi Pedro!

Mande um print do comando que você está executando e do erro que acontece, para melhor entendimento do problema.

Quando eu usei o git commit -m "" apareceu essa mensagem: On branch main nothing to commit, working tree clean Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ok.

Eu entrei nesse repositório remoto que você colocou no comando: https://github.com/pedroscfa/React-com-TypeScript-controle-de-estudos

Ele não é um repositório vazio! Já tem arquivos e commits que foram enviados anteriormente e por isso deu erro no comando git push.

Ou seja, está tudo certo? Ele só não aceita pq não existe nada novo para ser enviado?

Está certo no sentido de que você já enviou os arquivos para o repositório remoto. Mas se você tentar sincronizar seu repositório local com o remoto, o Git vai rejeitar, pois para ele são projetos distintos.

Para você entender melhor o problema:

  1. Você criou um repositório local no seu computador
  2. Você adicionou arquivos nesse repositório, realizou commits, modificou/apagou arquivos, fez novos commits, etc.
  3. Você criou um repositório remoto no GitHub
  4. Você linkou e sincronizou os repositórios, ou seja, enviou para o repositório remoto os commits e arquivos do seu repositório local

Até aí, tudo certo e nenhum problema, pois esse é o fluxo normal.

Porém, em algum momento posterior, você acabou criando um novo repositório local no computador (seja uma nova pasta e copiando para ela os mesmos arquivos ou apagando a pasta oculta .git e criando novamente o repositório com o comando git init).

Por mais que você coloque os mesmos arquivos do seu projeto anterior, para o Git esse será outro repositório distinto. E quando você fizer commits nesse repositório, eles serão commits diferentes do repositório local anterior.

Então, se você adicionar nesse novo repositório local o mesmo repositório remoto, ao tentar fazer o push vai ocorrer o erro, pois o Git vai detectar que no repositório remoto existem commits que são diferentes dos commits do seu novo repositório local.

Ou seja, você pode até imaginar que é o mesmo projeto, pois tem os mesmos arquivos, mas o Git não vai verificar se os arquivos são iguais, ele avalia os commits. Cada commit tem um identificador único e o git utiliza esse id para fazer a comparação e não permite sincronizar repositórios que tenham commits que não batem.

Você consegue verificar isso executando o comando git log, que exibe o id de cada commit. Por exemplo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Repare que no log que cada commit tem um id único que contém 40 caracteres.

Se você executar um git log no seu repositório local você vai conseguir verificar o id dos commits. Olhando o seu repositório remoto no GitHub, ele somente tem um único commit de id 9b4313fe7493f9971b756c6ff049581fe31d3a8e:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Provavelmente seu commit no repositório local deve ser diferente e por isso acontece o erro ao tentar sincronizar com o comando git push.

Então, como eu resolvo esse problema?

Se você quiser mexer nesse projeto, deve apagar essa nova pasta que criou com o novo repositório local e clonar o repositório remoto.

  1. Apague as pastas do projeto do seu computador
  2. Abra o terminal e clone o repositório remoto do GitHub: git clone git@github.com:pedroscfa/React-com-TypeScript-controle-de-estudos

Pronto! Agora basta trabalhar nesse projeto que foi clonado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software