Auxiliar de credenciais do Git - atualizar senha

198

Atualmente, estou usando o GitHub sobre HTTPS e tenho a versão mais recente do Git instalada (1.9.0) junto com o assistente de credenciais do Git no Windows 7.

Ao configurar meu ambiente, eu disse ao git-credentials para lembrar permanentemente meu nome de usuário e senha.

Atualizei recentemente minha senha do GitHub através do site e agora não consigo mais pressionar / puxar / buscar, etc.

Como eu atualizaria minha senha no auxiliar git-credentials no Windows 7?

Andrew Thomson
fonte
6
Simples, use "git config --global credential.helper wincred" e digite o ID do usuário e a senha; então isso será armazenado para você. Na próxima vez que você alterar sua senha, execute novamente o comando acima.
Akshay Lokur
@AkshayLokur, esta é a resposta correta.
Ravimallya 7/03
Se tudo mais falhar, e você estiver usando o TortoiseGit, convém tentar uma ação por meio disso. Por exemplo, um puxar ou buscar usando o Tortoise solicitará a senha, que você poderá atualizar. Isso parece substituir o cache do Git Bash e você pode usar o bash mais uma vez.
Paul F. Wood

Respostas:

280

Nenhuma dessas respostas acabou funcionando para o meu problema de credencial do Git. Aqui está o que funcionou se alguém precisar (estou usando o Git 1.9 no Windows 8.1).

Para atualizar as suas credenciais, vá para o Painel de ControleGerenciador de Credenciaiscredenciais genéricas . Encontre as credenciais relacionadas à sua conta do Git e edite-as para usar a senha atualizada.

Referência: como atualizar suas credenciais do Git no Windows

Observe que, para usar o Gerenciador de credenciais do Windows para Git, você precisa configurar o auxiliar de credenciais da seguinte maneira:

git config --global credential.helper wincred

Se você tiver várias contas do GitHub usadas para diferentes repositórios, configure as credenciais para usar o caminho completo do repositório (em vez de apenas o domínio, que é o padrão):

git config --global credential.useHttpPath true
xgo
fonte
21
Esta deve ser a resposta aceite se git config --listcontém credential.helper=wincred.
MF
6
Trabalhou para mim - obrigado - e aprendeu sobre o gerenciador de credenciais do Windows também.
rwalter
Este. alterar a senha não funcionou, mas excluí as credenciais e, em seguida, o git push solicitou credenciais novamente e funcionou.
BiAiB
2
Eu acho que funciona para a janela 8.1 e a janela 10 também. No meu caso: window 10 Pro, git 2.17
Thinhbk 07/06
2
Para qualquer pessoa que (como eu) remova as credenciais armazenadas esperando outro prompt, mas o prompt não aparece. No Credentials Manager, você pode ADDa Generic Credentialcom um endereço de git:http://yourserver:port/. Http ou Https é o mesmo, o mais importante é o que está git:no início.
A. Chiesa
101

Na minha primeira tentativa de buscar o Git após a alteração da minha senha, disseram-me que minha combinação de nome de usuário / senha era inválida. Isso estava correto, pois o ajudante de credenciais git tinha armazenado em cache meus valores antigos.

No entanto, tentei outra busca do git depois de reiniciar meu terminal / prompt de comando e, desta vez, o assistente de credencial solicitou que eu digite meu nome de usuário e senha do GitHub.

Eu suspeito que a solicitação inicial de busca do Git com falha, combinada com a reinicialização do meu terminal / prompt de comando, resolveu isso para mim.

Espero que esta resposta ajude mais alguém em uma posição semelhante no futuro!

Andrew Thomson
fonte
2
Basta reiniciar o Git Bash, ele exibirá uma caixa de diálogo para inserir um novo nome de usuário / senha.
Quan
2
Para o registro, eu pude solucionar isso fazendo outro pull / fetch sem reiniciar minha sessão do Powershell no Windows 7. O Windows solicitou meus novos recursos na segunda tentativa.
Bender the Great
reiniciar o console / aplicativo fez o "wincred" funcionar para mim. (Eu tive que reiniciar o meu console e "Atom" e tudo funcionou bem)
low_rents
3
Inserir qualquer comando git que requer credenciais uma segunda vez parece fazer isso, não apenas git fetch, mas também funcionou em um segundo git clone.
Navigator_
Muito obrigado! Sempre que altero minha senha de domínio, tenho que me lembrar de como atualizar minhas credenciais.Git fetch - Funcionou para mim!
Alexander Brattsev 15/01
74

Solução usando linha de comando para Windows, Linux e MacOS

Se você atualizou sua senha do GitHub no servidor GitHub, na primeira tentativa do git fetch/pull/pushcomando, ele gera a mensagem de falha na autenticação .

Execute o mesmo git fetch/pull/pushcomando pela segunda vez e solicita credenciais (nome de usuário e senha). Digite o nome de usuário e a nova senha atualizada do servidor GitHub e o login será bem-sucedido.

Até eu tive esse problema e executei as etapas acima e concluí !!

Farooque
fonte
@ Vincent: qual é o problema que você está recebendo?
Farooque
2
Acabei de receber repetidamente o controle remoto: nome de usuário ou senha inválidos. fatal: Falha na autenticação para
RichMeister 26/11
1
@ RichMeister: a partir da segunda vez, será solicitado o nome de usuário / senha. Basta fornecer seu nome de usuário / new_password.
Farooque 27/11/18
3
Trabalhou para mim no MacOS com credenciais em cache após uma alteração de senha. Primeira vez que obtém 'Falha na autenticação para ...'. Tentou novamente e foi solicitado para credenciais, digite ID do usuário e senha nova, e agora trabalhar novamente
Kevin Hooke
1
Esta é a melhor / mais fácil resposta
Ryan Boken 14/01
74

Se você é um usuário do Windows, pode remover ou atualizar suas credenciais no Credential Manager.

No Windows 10, vá para o caminho abaixo:

Painel de controleTodos os itens do painel de controleCredential Manager

Ou pesquise "gerenciador de credenciais" na seção "Pesquisar janelas" no menu Iniciar.

Em seguida, no Credential Manager, selecione "Credenciais do Windows".

O Credential Manager mostrará muitos itens, incluindo sua perspectiva e o repositório GitHub, em "Credenciais genéricas"

Você clica na seta suspensa no lado direito do seu Git: e ele mostra opções para editar e remover. Se você remover, o pop-up de credenciais aparecerá na próxima vez em que você buscar ou puxar. Ou você pode editar diretamente as credenciais lá.

Vins
fonte
3
Depois de tentar outras opções, apenas este funcionou para mim. Eu encontrei informações aqui: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib
Nota: este controle NÃO É ACESSÍVEL ATRAVÉS DO "PAINEL DE CONTROLE" DA METRO UI! Você precisa executar control.exemanualmente para ver esse controle.
AnrDaemon 03/06/19
Isso ajudou muito! Eu nem sabia que essas ferramentas existiam.
max
35

Primeiro encontre a versão que você está usando com o comando Git git --version. Se você possui uma versão mais recente que a 1.7.10, basta usar este comando:

git config --global credential.helper wincred

Em seguida, faça o git fetchpedido e solicite a atualização da senha.

Agora, ele não solicitará a senha várias vezes no Git.

Sireesh Yarlagadda
fonte
7
Este doesn não responder à pergunta
disklosr
2
@disklosr Sim, sim. Força o Git a solicitar a senha atualizada na próxima vez que você executar uma ação remota.
Nilpo
1
@Nilpo O que é uma "ação remota" então? "Git push origin xxx" não deve ser uma ação remota? Não está fazendo isso. em vez disso, fico remoto: nome de usuário ou senha inválidos.
RichMeister 26/11
1
Funcionou para mim. Depois de executar este comando. Faça "git fetch", você será solicitado a fornecer credenciais, forneça-o.
1877 Alex
Por que --global? Não corro o risco de ser solicitado novamente a todos os meus repositórios, em vez de apenas o afetado?
Thomas Weller
29

Parece-me que as respostas aqui estão desatualizadas. Para mim, no Windows 10 e no Git 2.15.0, isso fez o trabalho:

git credential reject
protocol=https
host=github.com
<Empty line here>

E, em seguida, para definir o novo nome de usuário e senha:

git credential fill
protocol=https
host=github.com
<empty line here>

Depois disso, se as credenciais agora funcionarem no host de destino desejado, devemos usar, git credential approvecomo mencionado no uso típico das credenciais do Git (etapa 4), para instruir os auxiliares de credenciais a marcar as credenciais como aprovadas e reutilizá-las em futuras conexões.

atavio
fonte
1
Para mim, fazendo a git credential fillparte como está, ela gerou automaticamente a senha antiga incorreta; Eu tive que definir o novo manualmente com este comando para que ele funcionasse; de qualquer forma, obrigado, esta resposta me ajudou com esse problema!
Emerson Cardoso
Voto positivo para o topo! Quanto tempo perdeu a leitura de soluções desatualizadas. Na verdade, acho que o Git Credential Manager é o responsável por ter que passar por dificuldades quando as senhas do domínio são giradas.
Janis Veinbergs
1
depois fill, não devemos usar approve?
Z. Khullah 22/05/19
Na minha máquina git credential rejectnunca termina
Thomas Weller
@ThomasWeller, você precisa pressionar enter para deixar uma linha vazia lá e, em seguida, ela é concluída.
atavio 13/01
19

FWIW, me deparei com esse mesmo problema (e meu chefe também, por isso ficou mais intenso).

A solução instantânea é excluir ou corrigir suas entradas do Git no Windows Credential Manager. Pode ser difícil encontrá-lo na sua versão localizada do Windows, mas, felizmente, você pode iniciá-lo a partir da boa e antiga caixa de diálogo Windows+ ou Rcom (ou se preferir a aparência clássica). Ou colocar isso em um arquivo de lote para seus colegas: .control keymgr.dllcontrol /name Microsoft.CredentialManagerrundll32.exe keymgr.dll, KRShowKeyMgrcmdkey /delete:git:http://your.git.server.company.com

No Git Credential Manager da Microsoft, esse é um problema conhecido que pode ser corrigido no início de 2019 (não prenda a respiração).

Jakob
fonte
1
Compreender o Windows Credential Manager usando a interface do usuário do Painel de Controle é ótimo, mas fica cansativo quando você precisa atualizar em todas as máquinas. Esse comando único é excelente, pois realiza a mesma coisa (remove as credenciais inválidas existentes), o que força o git a solicitar as credenciais novamente na próxima vez que precisar delas. No Windows Server 2016, a sintaxe do comando para remover a credencial é um pouco diferente: cmdkey /delete:git:https://your.git.server.company.com
Rudimental
/delete{:<TargetName>}é a sintaxe oficial , mas eu achei que o atalho /del <TargetName>também funciona, pelo menos no Windows 10 (1803).
Jakob
ótima idéia para um apelido! delpw = !cmdkey /delete:git:$(git remote get-url $1). Uso: git delpw origin(ps: / del não funcionou aqui, também ganhou 10)
Z. Khullah
6

Apenas cdno diretório em que você instalou o git-credential-winstore. Se você não sabe onde, basta executar isso no Git Bash:

cat ~/.gitconfig

Ele deve imprimir algo parecido com:

[credential]
    helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'

Nesse caso, seu repositório é C: \ ProgramFile \ GitCredStore. Quando você estiver nessa pasta usando o Git Bash ou o comando do Windows, digite:

git-credential-winstore.exe erase
host=github.com
protocol=https

Não se esqueça de pressionar Enterduas vezes depois protocol=https.

Luc DUZAN
fonte
3

Nenhuma das soluções atuais funcionou para mim com o git bash 2.26.2. Isso deve funcionar em qualquer caso, se você estiver usando o gerenciador de credenciais do Windows.

Um problema é o gerenciador de credenciais do Windows executado para o usuário conectado. No meu caso, por exemplo, eu corro o git bash com o botão direito, corro como admin. Portanto, minhas credenciais armazenadas estão em um gerenciador de credenciais que não consigo acessar com a GUI do Windows se não fizer login no Windows como administrador.

Para corrigir isso:

  • Abra um cmd como administrador (ou qualquer usuário com o qual você execute o bash)
  • Vá para windows / system32
  • Digite cmdkey /list. Suas credenciais antigas devem aparecer aqui, com uma parte que diz ... target: xxx ...
  • Tipo cmdkey /delete:xxx, onde xxx é o destino da linha anterior

Ele deve confirmar que suas credenciais foram removidas. Da próxima vez que você executar qualquer operação no git bash que exija autenticação, um pop-up solicitará suas credenciais.

Jorge.V
fonte