Come disabilitare Git Credential Manager per Windows?


170

Ho notato che nell'ultima versione di Git, l'impostazione predefinita è ora visualizzare una finestra di dialogo "Git Credential Manager per Windows" invece di richiedermi ogni volta la password al prompt di Bash.

Odio davvero questo comportamento. Come posso semplicemente disabilitarlo e tornare a inserire la password nella shell Bash ogni volta?

A proposito, non voglio che Git memorizzi le mie credenziali in alcun modo , sia attraverso le credenziali di Windows che con alcuni demoni interni. Voglio disabilitare tutta la cache delle credenziali .

Risposte:


211

OK, ho scoperto che è necessario evitare di selezionare la casella di controllo "Git Credential Manager" durante l'installazione di Git per Windows oppure (dopo l'installazione) eseguire la shell Bash come amministratore e utilizzare git config --edit --systemper rimuovere la helper = managerlinea in modo che non sia più registrata come un aiutante credenziale.

Per i punti bonus, utilizzare git config --edit --globale inserire:

[core]
    askpass =

Per disabilitare anche il popup delle credenziali OpenSSH.


19
Grazie per la risposta. Per me, è stata la prima volta che ho usato l'editor. Se vuoi salvare le modifiche, premi il tasto Esc e digita: wq e premi invio (scrivi / salva ed esci).
Ben Besuijen,

1
Grazie molto! Il gestore delle credenziali si è confuso con il server proxy del mio lavoro e ha reso il lavoro con Sourcetree un incubo. La disabilitazione ha risolto immediatamente il problema.
Johnny,

1
e se: wq non funziona come nel mio caso, usa ctrl + z per interrompere ed uscire ma questi probabilmente faranno funzionare più file di backup con cui lavorare in seguito
Adeem

37
O git config --system --unset credential.helper
eliminalo

4
Per coloro che utilizzano SourceTree assicurarsi che venga utilizzata la versione "system" di GIT, non quella incorporata. Tools -> Options -> Git.
Stevanico

30

Sono stato in grado di disinstallare Git Credential Manager per Windows usando l'opzione di disinstallazione:

git-credential-manager.exe uninstall

Esegui questo comando in C:\Program Files\Git\mingw64\libexec\git-core


1
Questo si blocca e dopo aver premuto ctrl-c, sputa questo utilizzo:git credential [fill|approve|reject]
ScottN,

2
@ScottN stai correndo git-credential.exema devi correre git-credential-manager.exe.
Aidan Ryan

13

Un'altra opzione che ho dovuto usare con VSTS:

git config credential.modalprompt false --global


3
Grazie! L'ho trovato molto utile quando ho usato ssh per connettermi in remoto al mio server di produzione: non sono riuscito a fare a git pullcausa del bombardamento del WCM. Con questa opzione mi piacciono entrambi i mondi: WCM quando connesso fisicamente con il server (o con Desktop remoto), ed essendo in grado di estrarre da un client SSH.
cbuchart,

9

Non ha funzionato per me:

C:\Program Files\Git\mingw64\libexec\git-core
git-credential-manager.exe uninstall

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]

Removing from 'C:\Program Files\Git'.
  removal failed. U_U

Press any key to continue...

Ma con la --forcebandiera ha funzionato:

C:\Program Files\Git\mingw64\libexec\git-core
git credential-manager uninstall --force
08:21:42.537616 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
e
08:21:42.538616 git.c:576               trace: exec: git-credential-manager uninstall --force
08:21:42.538616 run-command.c:640       trace: run_command: git-credential-manager uninstall --force

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]


Success! Git Credential Manager for Windows was removed! ^_^

Press any key to continue...

Ho potuto vedere quella traccia dopo aver eseguito:

set git_trace=1

Inoltre ho aggiunto il nome utente Git:

git config --global credential.username myGitUsername

Poi:

C:\Program Files\Git\mingw64\libexec\git-core
git config --global credential.helper manager

Alla fine ho inserito questo comando:

git config --global credential.modalPrompt false

Controllo se l'agente SSH è in esecuzione - apri una finestra di Bash per eseguire questo comando

eval "$(ssh-agent -s)"

Quindi nella cartella Users / yourName del computer in cui si trova .ssh, aggiungi una connessione (sempre in Bash):

ssh-add .ssh/id_rsa

or

ssh-add ~/.ssh/id_rsa(if you are not in that folder)

Ho controllato tutte le impostazioni che ho aggiunto sopra:

C:\Program Files\Git\mingw64\libexec\git-core
git config --list
09:41:28.915183 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-cor
e
09:41:28.917182 git.c:344               trace: built-in: git config --list
09:41:28.918181 run-command.c:640       trace: run_command: unset GIT_PAGER_IN_USE; LESS=FRX LV=-c less
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
credential.modalprompt=false
credential.username=myGitUsername

E quando l'ho fatto git push di nuovo ho dovuto aggiungere username e password solo per la prima volta.

git push
Please enter your GitHub credentials for https://myGithubUsername@github.com/
username: myGithubUsername
password: *************
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 316 bytes | 316.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.

Da allora usando git push , non ho più il messaggio di inserire le mie credenziali Git.

D:\projects\react-redux\myProject (master -> origin) (budget@1.0.0)
λ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 314 bytes | 314.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/myGitUsername/myProject.git
   8d38b18..f442d74  master -> master

Dopo queste impostazioni ho ricevuto anche un'e-mail con il messaggio:

 A personal access token (git: https://myGitHubUsername@github.com/
on LAP0110 at 25-Jun-2018 09:22) with gist and repo scopes was recently added
to your account. Visit https://github.com/settings/tokens for more information.

6

Ho avuto questo problema e ho rimosso solo il file git-credential-manager.exe da:

C:\Program Files\Git\mingw64\libexec\git-core

6

Volevo usare il gestore delle credenziali per un uso normale, ma ho degli script in cui ovviamente non desidero ricevere alcuna richiesta git.exe. Ecco come invoco Git dai miei script:

set GIT_TERMINAL_PROMPT=0
git -c core.askpass= -c credential.helper= <command> ...

In questo modo, lo script vede sempre l'impostazione corretta "corretta" senza dover adattare alcuna configurazione.

(Git per Windows 2.13.3)


Una variazione che ho trovato utile potrebbe essere utile:

set GCM_INTERACTIVE=never
# Or: git config --global credential.interactive never

set GIT_TERMINAL_PROMPT=0
git.exe -c core.askpass= -c credential.helper=manager <command> ...

Ma nota che git.exe -c credential.interactive=never <command> ... non non funziona (pare che il-c cosa non viene instradato attraverso Git Credential Manager per Windows o qualsiasi altra cosa).

In questo modo, è possibile utilizzare GCMfW, ma non verrà mai richiesto; cercherà solo le credenziali, che possono essere molto utili in ambienti non interattivi.


5

Uso:

C:\Program Files\Git\mingw64\libexec\git-core                                                                       
git credential-manager uninstall --force    

Funziona su sistemi Windows. L'ho provato e ha funzionato per me.


3

Forse il problema è Sourcetree .

  1. Vai su StrumentiOpzioni

  2. Deseleziona "Controlla i telecomandi predefiniti per gli aggiornamenti ogni [10] minuti"

  3. Riavvia Sourcetree!


1

e se: wq non funziona come nel mio caso, usa ctrl + z per interrompere ed uscire ma questi probabilmente faranno funzionare più file di backup con cui lavorare in seguito - Adeem 19 gennaio alle 9:14

Assicurati anche di eseguire Git come amministratore! Altrimenti il ​​file non verrà salvato (nel mio caso).


1

Ho riscontrato lo stesso problema su Ubuntu 18.10 (Cosmic Cuttlefish), incapace di rimuovere con qualsiasi mezzo normale. Ho usato git config --global --unset credential.helper, e quello sembrava fare il trucco.


1

Nella cartella "user" c: // user, guarda il file ".gitconfig" quindi rimuovi la riga http e proxy.


1

Per impedire l'uso della finestra di dialogo git config --global credential.modalPrompt false, questo porterà le query alla console.


0

puoi semplicemente eliminare Credential Manager.

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
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.