git: 'credential-cache' non è un comando git


264

Ho seguito queste istruzioni alla lettera, inclusa la parte relativa alla memorizzazione nella password. Sembra che le istruzioni siano sbagliate, perché ogni volta git push origin masterche ottengo questo errore:

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

... a quel punto sono costretto a inserire il mio nome utente e password. Dopo averlo fatto, mi viene nuovamente presentato lo stesso messaggio di errore, seguito dall'output di git push.

Ecco il contenuto del mio file .gitconfig:

[user]
    name = myusername
    email = myusername@myemaildomain.com
[credential]
    helper = cache

Per essere chiari, dopo aver installato Git ed eseguito Git Bash, ecco esattamente quello che ho scritto:

git config --global user.name "myusername"
git config --global user.email "myusername@myemaildomain.com"
git config --global credential.helper cache

Per favore aiuto. Questo è così frustrante!


53
Per rimuovere il messaggio "git: 'credential-cache' non è un comando git", esegui "git config --global --unset credential.helper", quindi puoi seguire le istruzioni seguenti.
Wallace Kelly,

5
@Wally +1 Grazie, il tuo comando ha funzionato per me solo dopo averlo rimosso --global.
Web_Designer il


1
puoi in alternativa rimuovere il messaggio modificando manualmente il file .git / config (es. rimuovi le righe sotto [credenziale])
tarikakyol,

FWIW per coloro che leggono i vari suggerimenti di Windows di seguito, git config credential.helper cache ha funzionato per me con Cygwin git versione 2.13.2.
Flash Sheridan,

Risposte:


323

Da un blog ho trovato :

"Questo [git-credential-cache] non funziona per i sistemi Windows poiché git-credential-cache comunica attraverso un socket Unix."

Git per Windows

Poiché msysgit è stato sostituito da Git per Windows, l'utilizzo di Git per Windows è ora l'opzione più semplice. Alcune versioni del programma di installazione di Git per Windows (ad es. 2.7.4) hanno una casella di controllo durante l'installazione per abilitare Git Credential Manager. Ecco uno screenshot:

screenshot della procedura guidata di installazione di Git per Windows 2.7.4

Usi ancora msysgit? Per msysgit versioni 1.8.1 e successive

L' wincredhelper è stato aggiunto in msysgit 1.8.1. Usalo come segue:

git config --global credential.helper wincred

Per le versioni di msysgit precedenti alla 1.8.1

Innanzitutto, scarica git-credential-winstore e installalo nella tua directory git bin.

Quindi, assicurati che la directory contenente git.cmd sia nella variabile di ambiente Path. La directory predefinita è C: \ Programmi (x86) \ Git \ cmd su un sistema a 64 bit o C: \ Programmi \ Git \ cmd su un sistema a 32 bit. Un modo semplice per testarlo è avviare un prompt dei comandi e digitare git. Se non ottieni un elenco di comandi git, non è impostato correttamente.

Infine, avvia un prompt dei comandi e digita:

git config --global credential.helper winstore

Oppure puoi modificare il tuo file .gitconfig manualmente:

[credential]
    helper = winstore

Una volta fatto questo, puoi gestire le tue credenziali git tramite Gestione credenziali di Windows che puoi estrarre tramite il Pannello di controllo di Windows.


4
gitcredentialstore.codeplex.com contiene domande frequenti. Mi ha aiutato a installare Winstore con successo. Arresti anomali binari a meno che non vengano eseguiti da git-bash.
Ruruskyi,

8
Cordiali saluti, ho dovuto installare con diritti di amministratore espliciti. Senza di essa, ottenevo l'errore "git: 'credential-winstore' non è un comando git. Vedi 'git --help'". Il mio .gitconfig ora sembra anche un po 'diverso, con la [linea credenziale] con "helper =!' C: \\ Users \\ Malachi \\ AppData \\ Roaming \\ GitCredStore \\ git-credential-winstore.exe ''
Malachi,

il mio genera un'eccezione non gestita e muore - System.Diagnostics.Process.StartWithShellExecuteEx (ProcessStartInfo startInfo)
Andrew

1
C'è un motivo per cui dovrebbero utilizzare i socket Unix in un'applicazione multipiattaforma? E se sì, perché git-credential-winstore non viene fornito con la versione Windows di Git per impostazione predefinita?
Domi il

3
Lo strumento git-credential-winstore non funziona per me. Una volta, ma improvvisamente mi viene richiesto dappertutto. Ho controllato .git-config e Gestione credenziali di Windows e tutto ciò che è lì dovrebbe essere. Semplicemente non funziona e non ho davvero idea del perché. :(
Chris McKenzie il


30

Prima corsa git config --global credential.helper wincred

Quindi vai a: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

quindi fai clic su aggiungi una credenziale in Internet or network address: aggiungi git:https://{nome utente}.github.com

User: {nome}

Password: {Parola d'ordine}


2
Credential Manager è in Account utente e Sicurezza famiglia in Windows 7
Casey Murray,

1
GRAZIE! Mi ci è voluta un'ora per scoprire come riparare Gestione credenziali di Windows dopo aver modificato la password del mio dominio. Santo Moly, che labirinto.
SadBunny,

3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}dalla console verrà avviato anche Credential Manager.
Jeroen Wiert Pluimers,

1
Grazie, il mio problema è stato risolto :)
Diallo,

21

Ho riscontrato questo problema durante l'utilizzo di AptanaStudio3 su Windows 7. Questo mi ha aiutato:

git config --global credential.helper wincred

Codice preso da qui


10

Ora c'è un modo molto più semplice per impostare la memorizzazione nella cache di password Git facendo doppio clic su una piccola exe su Windows. Il programma è ancora basato su git-credential-winstorecitato dalla risposta più votata, sebbene il progetto sia stato spostato da GitHub a http://gitcredentialstore.codeplex.com/

Puoi scaricare exe (e un file binario per Mac) da questo post del blog: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage


Questa è la risposta che stavo cercando. Microsoft ha iniziato a mantenere questo progetto. Memorizza le password nell'archivio credenziali di Windows.
Gordolio,

10

Un errore simile è 'credential-wincred' is not a git command

Le risposte accettate e popolari non sono più aggiornate ...

wincredè per il progetto git-credential-winstore che non viene più mantenuto .

È stato sostituito da Git-Credential-Manager-for-Windows gestito da Microsoft open source .

Scarica la versione come file zip dal link sopra ed estrai il contenuto in

\cygwin\usr\libexec\git-core

(o \cygwin64\usr\libexec\git-corecome potrebbe essere)

Quindi abilitalo (impostando il globale .gitconfig) - esegui:

git config --global credential.helper manager

Come usare

Non sono necessarie ulteriori configurazioni.

Funziona [automaticamente] quando sono necessarie le credenziali.

Ad esempio, quando si spinge in Azure DevOps, apre una finestra e inizializza un flusso oauth2 per ottenere il token.

ref:


8

Per prima cosa trova la versione che stai utilizzando per GIT.

usando questo comando: git --version

se hai una versione più recente di 1.7.10.

Quindi usa semplicemente questo comando.

git config --global credential.helper wincred

Riferimento


6

Per il bene di altri che si presentano su questo problema, ho avuto lo stesso problema in Ubuntu (vale a dire che le mie password non erano memorizzate nella cache, nonostante avessi impostato correttamente l'opzione e git: 'credential-cache' is not a git command.avessi ricevuto l'errore ), fino a quando ho scoperto che questa funzione è solo disponibile in Git 1.7.9 e versioni successive .

Essendo su una distribuzione precedente di Ubuntu (Natty; sono un utente testardo di Gnome 2) la versione nel repository era git versione 1.7.4.1. Ho usato il seguente PPA per l'aggiornamento: https://launchpad.net/~git-core/+archive/ppa


1
Ricevo ancora git: 'credential-cache' is not a git command.anche dopo l'aggiornamento alla versione 2.8.2 su Windows, anche se la cache delle credenziali funziona! Probabilmente ho creato questo problema usando alcuni git configcomandi prima.
Buttle Butkus,

1
@ButtleButkus git config altera ~/.gitconfigo il repo-local .git/config, a seconda che la --globalbandiera sia stata usata. Guarda quei due file per tutto ciò che riguarda le credenziali.
Johann,

5

Per il bene di altri che hanno questo problema - sono arrivato qui perché ho cercato di diventare carino con il modo in cui ho impostato un nuovo repository github, ma per l' helper delle credenziali della pagina di installazione non funziona a meno che non si cloni un repository.

"Suggerimento: l'helper delle credenziali funziona solo quando si clona un URL del repository HTTPS. Se si utilizza invece l'URL del repository SSH, le chiavi SSH vengono utilizzate per l'autenticazione. Questa guida offre assistenza per la generazione e l'utilizzo di una coppia di chiavi SSH."


4

Ho risolto questo problema rimuovendo la credentialsezione dalla configurazione del progetto specifico:

  • Appena digitato: git config -e
  • All'interno dell'editor ho rimosso l'intera sezione [credential] helper = cache.

Ciò ha rimosso il fastidioso messaggio:

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


1
Ho provato molte soluzioni dall'alto e questa è l'unica che ha funzionato. Sono appena andato nella mia cartella .git, ho aperto il file di configurazione ed eliminato helper [credential] = global (l'ho impostato accidentalmente su "global"). Grazie mille Pini Cheyni.
Filip Savic,

1
Sono felice di poterti aiutare
Pini Cheyni il

3

Mi rendo conto di essere un po 'in ritardo nella conversazione, ma ho riscontrato lo stesso identico problema Nella mia configurazione di git avevo due credenziali ...

Nel mio file .gitconfig

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

La correzione: modificato il mio file .gitconfig con le impostazioni seguenti

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

0

Abbiamo avuto lo stesso problema con i nostri repository DevOps di Azure dopo la modifica del dominio, ovvero da @ xy.com a @ xyz.com. Per risolvere questo problema, abbiamo generato un nuovo token di accesso personale con le seguenti autorizzazioni:

Codice: leggi e scrivi Confezione: leggi

Quindi abbiamo aperto Gestione credenziali di Windows, aggiunto una nuova credenziale di Windows generica con i seguenti dettagli:

Indirizzo Internet o di rete: "git: { projectname } @ dev.azure.com / { projectname }" - in alternativa è necessario utilizzare qui il nome del proprio repository git.
Nome utente: "Token di accesso personale"
Password: { Il token di accesso personale generato }

Successivamente tutte le nostre operazioni git stavano di nuovo funzionando. Spero che questo aiuti qualcun altro!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.