git: 'credential-cache' não é um comando git

264

Eu segui estas instruções à risca, incluindo a parte sobre cache de senha. Parece que as instruções estão erradas, porque sempre git push origin masterque recebo este erro:

git: 'credential-cache' is not a git command. See 'get --help'.

... nesse ponto, sou forçado a inserir meu nome de usuário e senha. Depois disso, a mesma mensagem de erro é exibida novamente, seguida pela saída de git push.

Aqui está o conteúdo do meu arquivo .gitconfig:

[user]
    name = myusername
    email = [email protected]
[credential]
    helper = cache

Para ficar claro, depois de instalar o Git e executar o Git Bash, eis exatamente o que eu digitei:

git config --global user.name "myusername"
git config --global user.email "[email protected]"
git config --global credential.helper cache

Por favor ajude. Isso é tão frustrante!

Big McLargeHuge
fonte
53
Para remover a mensagem "git: 'credential-cache' não é um comando git.", Execute "git config --global - sunset credential.helper" e siga as instruções abaixo.
Wallace Kelly
5
@Wally +1 Obrigado, seu comando funcionou para mim somente após a remoção --global.
Web_Designer 22/11
1
poderá alternativamente remover a mensagem modificando .git / ficheiro de configuração manualmente (isto é, remover as linhas abaixo [credencial])
tarikakyol
FWIW para aqueles que lêem as várias sugestões do Windows a seguir, git config credential.helper cache fez o trabalho para mim com Cygwin git versão 2.13.2.
Flash Sheridan

Respostas:

323

De um blog que encontrei :

"Este [cache de credenciais do git] não funciona nos sistemas Windows, pois o cache de credenciais do git se comunica através de um soquete Unix."

Git para Windows

Como o msitgit foi substituído pelo Git for Windows, o uso do Git for Windows agora é a opção mais fácil. Algumas versões do instalador do Git for Windows (por exemplo, 2.7.4) possuem uma caixa de seleção durante a instalação para ativar o Git Credential Manager. Aqui está uma captura de tela:

captura de tela do assistente de instalação do Git For Windows 2.7.4

Ainda usando o msysgit? Para as versões do msysgit 1.8.1 e superior

O wincredauxiliar foi adicionado no msysgit 1.8.1. Use-o da seguinte maneira:

git config --global credential.helper wincred

Para versões do msysgit anteriores à 1.8.1

Primeiro, faça o download do git-credential-winstore e instale-o no diretório git bin.

Em seguida, verifique se o diretório que contém git.cmd está na sua variável de ambiente Path. O diretório padrão para isso é C: \ Arquivos de Programas (x86) \ Git \ cmd em um sistema de 64 bits ou C: \ Arquivos de Programas \ Git \ cmd em um sistema de 32 bits. Uma maneira fácil de testar isso é iniciar um prompt de comando e digitar git. Se você não receber uma lista de comandos git, ele não estará configurado corretamente.

Por fim, inicie um prompt de comando e digite:

git config --global credential.helper winstore

Ou você pode editar seu arquivo .gitconfig manualmente:

[credential]
    helper = winstore

Depois de fazer isso, você pode gerenciar suas credenciais git através do Windows Credential Manager, que você pode acessar através do Painel de Controle do Windows.

Nate Cook
fonte
4
gitcredentialstore.codeplex.com contém perguntas frequentes. Isso me ajudou a instalar o winstore com sucesso. Falhas binárias, a menos que você a execute no git-bash.
Ruruskyi
8
Para sua informação, tive que instalar com direitos explícitos de administrador. Sem ele, estava recebendo o erro "git: 'credential-winstore' não é um comando git. Consulte 'git --help'". Meu .gitconfig agora também parece um pouco diferente, com a [linha de credenciais] tendo "helper =! 'C: \\ Usuários \\ Malachi \\ AppData \\ Roaming \\ GitCredStore \\ git-credential-winstore.exe' '
Malachi
mina lança uma exceção não tratada e morre - System.Diagnostics.Process.StartWithShellExecuteEx (ProcessStartInfo startInfo)
Andrew
1
Existe uma razão pela qual eles usariam soquetes Unix em um aplicativo multiplataforma? E se sim, por que o git-credential-winstore não é fornecido com a versão do Git para Windows por padrão?
Domi
3
A ferramenta git-credential-winstore não está funcionando para mim. Costumava, mas de repente estou sendo avisado por todo o lugar. Eu verifiquei .git-config e o Gerenciador de credenciais do Windows e tudo o que existe. Simplesmente não está funcionando e eu realmente não tenho ideia do porquê. :(
Chris McKenzie
30

Primeira corrida git config --global credential.helper wincred

Então vá para: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

clique em adicionar uma credencial em Internet or network address: adicionar git:https://{nome de usuário}.github.com

User: {nome}

Password: {Senha}

Ivandro Ismael Gomes Jao
fonte
2
Gerenciador de Credenciais está em Contas de Usuário e Segurança Familiar do Windows 7
Casey Murray
1
OBRIGADO! Levei uma hora para descobrir como consertar meu Gerenciador de Credenciais do Windows depois de alterar minha senha de domínio. Santo Moly, que labirinto.
sadbunny
3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}a partir do console iniciará o Credential Manager também.
Jeroen Wiert Pluimers
1
Obrigado, meu problema é corrigido :)
Diallo
21

Eu enfrentei esse problema ao usar o AptanaStudio3 no windows7. Isso me ajudou:

git config --global credential.helper wincred

Código retirado daqui

Ikrom
fonte
10

Agora existe uma maneira muito mais fácil de configurar o cache de senha do Git clicando duas vezes em um pequeno exe no Windows. O programa ainda é baseado no git-credential-winstoremencionado pela resposta votada principal, embora o projeto tenha sido movido do GitHub para http://gitcredentialstore.codeplex.com/

Você pode baixar o exe (e um binário para Mac) nesta postagem do blog: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage

Saheed
fonte
Esta é a resposta que eu estava procurando. A Microsoft começou a manter este projeto. Ele armazena as senhas no armazenamento de credenciais do Windows.
Gordolio 08/10
10

Um erro semelhante é 'credential-wincred' is not a git command

As respostas aceitas e populares agora estão desatualizadas ...

wincredé para o projeto git-credential-winstore que não é mais mantido .

Foi substituído pelo Git-Credential-Manager-for-Windows mantido pelo código-fonte aberto da Microsoft .

Faça o download do release como arquivo zip no link acima e extraia o conteúdo para

\cygwin\usr\libexec\git-core

(ou \cygwin64\usr\libexec\git-corecomo pode ser)

Em seguida, ative-o (configurando o global .gitconfig) - execute:

git config --global credential.helper manager

Como usar

Nenhuma configuração adicional é necessária.

Funciona [automaticamente] quando são necessárias credenciais.

Por exemplo, ao enviar para o Azure DevOps, ele abre uma janela e inicializa um fluxo oauth2 para obter seu token.

ref:

TT--
fonte
8

Primeiro encontre a versão que você está usando para o GIT.

usando este comando: git --version

se você tiver uma versão mais recente que 1.7.10.

Em seguida, basta usar este comando.

git config --global credential.helper wincred

Referência

Sireesh Yarlagadda
fonte
6

Para o bem de outras pessoas que enfrentam esse problema, eu tive o mesmo problema no Ubuntu (ou seja, minhas senhas não estavam em cache, apesar de ter definido a opção corretamente e de ter recebido o erro git: 'credential-cache' is not a git command.), até descobrir que esse recurso é apenas disponível no Git 1.7.9 e acima .

Sendo em uma distribuição mais antiga do Ubuntu (Natty; eu sou um teimoso usuário do Gnome 2), a versão no repositório era git versão 1.7.4.1. Usei o seguinte PPA para atualizar: https://launchpad.net/~git-core/+archive/ppa

Johann
fonte
1
Ainda estou obtendo o git: 'credential-cache' is not a git command.mesmo após atualizar para a versão 2.8.2 no Windows, mesmo que o cache de credenciais esteja funcionando! Eu provavelmente criei esse problema usando algum git configcomando antes.
Buttle Butkus
1
O @ButtleButkus git config altera o repositório ~/.gitconfiglocal ou o repo-local .git/config, dependendo se o --globalsinalizador foi usado. Olhe para esses dois arquivos para qualquer coisa relacionada a credenciais.
Johann
5

Para o bem de outras pessoas com esse problema - cheguei aqui porque tentei me acostumar com a forma como configuro um novo repositório do github, mas de acordo com a página de configuração assistente de credencial não funciona, a menos que você clone um repositório.

"Dica: o auxiliar de credencial funciona apenas quando você clona um URL de repositório HTTPS. Se você usar o URL do repositório SSH, as chaves SSH serão usadas para autenticação. Este guia oferece ajuda para gerar e usar um par de chaves SSH."

Andrew
fonte
4

Corrigi esse problema removendo a credentialseção da configuração do projeto específico:

  • Apenas digitado: git config -e
  • Dentro do editor, removi a seção inteira [credential] helper = cache.

Isso removeu a mensagem irritante:

git: 'credential-cache' is not a git command. See 'git --help'.

Pini Cheyni
fonte
1
Eu tentei muitas soluções de cima e esta é a única que funcionou. Acabei de ir para a minha pasta .git, abri o arquivo de configuração e excluí o [credencial] helper = global (defina-o como "global" acidentalmente). Muito obrigado Pini Cheyni.
Filip Savic
1
Estou feliz que pude ajudar
Pini Cheyni
3

Percebo que estou um pouco atrasado para a conversa, mas encontrei exatamente o mesmo problema. Na minha configuração do git, eu tinha duas credenciais de entrada ...

No meu arquivo .gitconfig

[credential]
helper = cached
[credentials]
helper = wincred

A correção: meu arquivo .gitconfig foi alterado para as configurações abaixo

[credential]
helper = wincred
[credentials]
helper = wincred
Jason Phillips
fonte
0

Tivemos o mesmo problema com nossos repositórios do Azure DevOps após a alteração do domínio, ou seja, de @ xy.com para @ xyz.com. Para corrigir esse problema, geramos um novo token de acesso pessoal com as seguintes permissões:

Código: ler e escrever Embalagem: ler

Em seguida, abrimos o Windows Credential Manager, adicionamos uma nova credencial genérica do Windows com os seguintes detalhes:

Endereço na Internet ou na rede: "git: { projectname } @ dev.azure.com / { projectname }" - como alternativa, você deve usar o nome do repositório git aqui.
Nome de usuário: "Token de acesso pessoal"
Senha: { O token de acesso pessoal gerado }

Depois, todas as nossas operações git estavam funcionando novamente. Espero que isso ajude alguém!

DeveloperExceptionError
fonte