Senha GitHub alterada, não é mais possível empurrar de volta para o remoto

111

Depois de alterar minha senha do GitHub, não consigo enviar para o remoto:

$ git push origin master
remote: Invalid username or password.

Existe apenas uma nova clonagem do repositório?

kenu.heo
fonte
Basta remover e adicionar o controle remoto novamente
onmyway133
1
Realmente? "Basta remover e adicionar o controle remoto novamente"? Começar do zero é inconveniente e sujeito a erros em algumas operações.
Jason S
1
Isso também pode acontecer depois de habilitar a autenticação de dois fatores, neste caso, você deve seguir as instruções aqui: stackoverflow.com/a/34919582/2898283
mechatroner
@JasonS Adicionar novamente um controle remoto dificilmente é "começar do zero". Isso modificaria apenas as cópias locais de branches remotos, que você não modifica diretamente de qualquer maneira; todas as filiais locais permaneceriam intactas, embora eu não tenha certeza se o rastreamento seria afetado.
jpmc26
@ jpmc26 Não me refiro ao conteúdo do repositório, quero dizer re-adicionar a URL.
Jason S

Respostas:

187

Se você alterou apenas a senha do controle remoto, não o nome de usuário, tente o seguinte comando para verificar as informações do controle remoto: -

git remote show origin

Isso pedirá sua senha para o usuário git fornecido, preencha-a corretamente e tente: -

git pull

ou,

git push

Deve funcionar, a menos que você precise alterar outras coisas como nome de usuário ou URL remoto, você pode dar uma olhada na seguinte documentação do Git: -

https://help.github.com/articles/setting-your-username-in-git/

https://help.github.com/articles/changing-a-remote-s-url/

Amit
fonte
9
Funciona para mim. git remote show originmostra prompt
Lazaro Fernandes Lima Suleiman
14
Interessante - git remote show originnão me showalertou , apenas me deu, então pensei que falhou (no que eu precisava fazer). Mas, por precaução, tentei git push origin mastere isso me motivou. Então ... eu ainda cheguei onde precisava estar :)
dwanderson 01 de
1
Tentei isso com IntelliJ e Android Studio, e ambos não funcionaram sem reiniciar, provavelmente porque as credenciais são armazenadas em cache. Eu editei a resposta para refletir isso.
Oliver Hausler
2
Funcionou exatamente como descrito para mim.
nabrown
2
Funcionou como esperado no Mac. Deve ser aceita resposta.
Aakanksha de
38

Para atualizar a senha em seu Terminal. Tente o comando abaixo, ele solicitará a sua senha novamente.

git push -u origin master
pérolas escondidas
fonte
37

O OP kenu.heo contornou o problema removendo e clonando novamente o repo.

Mas para outro:

Depende do seu sistema operacional, versão do git e protocolo que você está usando.

Dependendo do sistema operacional, você tem maneiras de armazenar em cache suas credenciais ( OSX KeyChain no Mac , ajudante de credencial netrc no Windows ou Linux ), e isso pode explicar por que seu push não está funcionando depois de alterar sua senha GitHub.
Para um chaveiro, você precisaria redefinir a senha armazenada nele .

Esse problema de senha também sugere que você está usando um url https (não um ssh, que dependeria de chaves ssh públicas / privadas e não seria influenciado por uma senha de conta GitHub, já que a chave SSH pública registrada em sua conta GitHub não teria mudado).

Verifique isso com um git remote -v.

Você pode forçar o git a usar seu login do GitHub com um:

git remote set-url origin https://[email protected]/Username/MyRepo.git

(substitua ' Username' e ' MyRepo.git' por seus próprios valores)

Em seguida, tente empurrar novamente, ele deve pedir sua senha do GitHub. Digite o novo.

Se isso não funcionar, verifique se você ativou o 2FA (2-Form Authentication). Se for esse o caso, você precisa gerar um PTA (Personal Token Access).
Veja mais em " Configurar clientes Git, como GitHub para Windows, para não solicitar autenticação ".

VonC
fonte
Obrigado, eu uso MacOSX, git 1.8.x. Tentei remover o repositório local e depois recliná-lo.
kenu.heo de
2
@ kenu.heo ok. Editei a resposta para incluir sua conclusão, mas também adicionei elementos que podem ajudar outras pessoas.
VonC de
git remote set-url origin https://github.com/shared_repo/shared_repo.gittrabalhou para mim no Windows no Git Shell
Choylton B. Higginbottom
Funciona no Ubuntu 16.04 LTS.
sd
22

Em um sistema Windows nenhuma das etapas funcionou para mim, o problema é que as credenciais são armazenadas no Gerenciador de credenciais do Windows.

Você pode ir ao Painel de Controle -> Contas de Usuário -> Gerenciador de Credenciais -> Credenciais do Windows

Em Credenciais genéricas, você encontrará seu URL do git, expanda a seleção e clique em editar.

Depois de editado, basta acionar um git push novamente e ele deve funcionar.

Fonte de informação: - Remover credenciais do Git

Seiva
fonte
1
Posso confirmar o mesmo no Windows 10.
tmsss
Isso funcionou para mim. O Windows armazenou as credenciais do git e, ao atualizar a senha do Windows, minha conta oficial do git não conseguiu sincronizar.
Krishna Oza
16

Pelo que eu experimentei, você só precisa inserir novamente o endereço remoto .

E o git pedirá usr / senha pelo novo em vez de ficar em silêncio e usar o obsoleto.

veja seus controles remotos, localize qual você deseja alterar

>git remote  
github
gitcafe
company

por exemplo, se você alterou a senha do repo da empresa, pode fazer:

>git remote remove company

Isso não afetará sua pasta , não afetará seus commits . Isso apenas exclui uma string de url do git

Em seguida, adicione este url novamente:

>git remote add company https://git.AyCramba.com/xxx.git

Empurre para isso:

>git push company master
username for 'https://git.AyCramba.com':
password for 'https://git.AyCramba.com':

Então começa a empurrar

Espero que ajude.

Quíron
fonte
1
O que git remote set-urleu menciono em minha resposta faz um remove + add.
VonC
3

O nome de usuário e a senha podem ser armazenados no Gerenciador de Credenciais do Windows. Verifique e atualize lá, se necessário.

(Eu sei que isso é um pouco óbvio e simples, mas pode ajudar algumas pessoas.)

squicc
fonte
2

Para mim, executando git no Windows7 usando git-bash, executando:

git push origin master

Está funcionando. Isso fez com que o Windows7 pedisse novamente pelos meus creds git, e então os armazenasse (onde quer que o Windows fizesse), para atualizar a senha.

Eric Manley
fonte
1

Ok, a postagem original é bem antiga, mas é o principal resultado do Google e nenhuma das respostas funcionou para mim. Vários outros posts de SO e GH também não funcionaram. Postando isso para ajudar quem está me seguindo aqui!

Minha situação é um pouco diferente: conta pessoal do GH, enviando para um repo privado da empresa, usando SSH e a linha de comando git no Mac. Minha senha não é armazenada no meu .gitconfignem em qualquer chaveiro nem no git credential.helper.

No exemplo abaixo PersonalName é minha conta GH, CompanyName é a empresa (o proprietário do repo no GH) e RepoName é o repositório.

Minha mensagem de erro original também era um pouco diferente: a tentativa git push origin masterresultou em

remote: Repository not found.
fatal: repository 'https://github.com/CompanyName/RepoName.git/' not found

O controle remoto estava funcionando antes da mudança da minha senha GH e eu não queria removê-lo porque tinha mudanças locais que precisava empurrar.

Eventualmente, uma resposta de seveas a esta pergunta no fórum da comunidade GitHub me indicou a direção certa. O principal era vincular o nome da minha conta GH ao repositório remoto (privado).

Isso funcionou para mim:

git remote set-url origin https://[email protected]/CompanyName/RepoName.git

Então

git remote show origin

solicitado com

Password for 'https://[email protected]': 

Consegui inserir minha nova senha, ver os detalhes remotos e git push origin masterconsegui.

ChalkBoard
fonte
0

Se você configurou o Github 2FA Auth, você precisa de um token de acesso pessoal (no lugar de sua senha do github no git cli), siga estas instruções para criá-lo: https://help.github.com/en/github/authenticating-to -github / Creating-a-personal-access-token-for-the-command-line

Então faça algo como

git checkout master

git pull origin <--- Neste ponto, você será solicitado a fornecer suas credenciais, digite seu usuário normal do github e como senha cole o token gerado no link acima.

Fernando Gonzalez Sanchez
fonte