Comment désactiver Git Credential Manager pour Windows?

170

Je remarque que dans la dernière version de Git, la valeur par défaut est maintenant de faire apparaître une boîte de dialogue "Git Credential Manager pour Windows" au lieu de me demander le mot de passe à l'invite Bash à chaque fois.

Je déteste vraiment ce comportement. Comment puis-je simplement le désactiver et revenir à la saisie du mot de passe dans le shell Bash à chaque fois?

En passant, je ne veux pas que Git mette en cache mes informations d'identification de quelque manière que ce soit, que ce soit via les informations d'identification Windows ou un démon interne. Je souhaite désactiver toute la mise en cache des informations d'identification .

Jez
la source

Réponses:

211

OK, j'ai découvert que vous devez soit éviter de cocher la case "Git Credential Manager" pendant le programme d'installation de Git pour Windows, soit (après l'installation) exécuter le shell Bash en tant qu'administrateur et utiliser git config --edit --systempour supprimer la helper = managerligne afin qu'elle ne soit plus enregistrée comme un assistant d'identification.

Pour les points bonus, utilisez git config --edit --globalet insérez:

[core]
    askpass =

Pour désactiver également la fenêtre contextuelle des informations d'identification OpenSSH.

Jez
la source
19
Merci pour votre réponse. Pour moi, c'était la première fois que j'utilisais l'éditeur. Si vous souhaitez enregistrer les modifications, appuyez sur la touche d'échappement et tapez: wq et appuyez sur Entrée (écrire / enregistrer et quitter).
Ben Besuijen
1
Merci beaucoup! Le gestionnaire d'informations d'identification a été confondu avec le serveur proxy de mon travail et cela a fait de travailler avec Sourcetree un cauchemar. La désactivation a résolu le problème immédiatement.
Johnny
1
et si: wq ne fonctionne pas comme mon cas, utilisez ctrl + z pour abandonner et quitter, mais ceux-ci créeront probablement plusieurs fichiers de sauvegarde pour fonctionner plus tard
Adeem
37
Ou assommez-le avecgit config --system --unset credential.helper
Ben Butzer
4
Pour ceux qui utilisent SourceTree, assurez-vous que la version «système» de GIT est utilisée, pas celle intégrée. Tools -> Options -> Git.
Stevanicus
30

J'ai pu désinstaller Git Credential Manager pour Windows à l'aide de l'option de désinstallation:

git-credential-manager.exe uninstall

Exécutez cette commande dans C:\Program Files\Git\mingw64\libexec\git-core

Ian Mercer
la source
1
Cela bloque juste et après avoir appuyé sur ctrl-c, crache cette utilisation:git credential [fill|approve|reject]
ScottN
2
@ScottN vous courez git-credential.exemais vous devez courir git-credential-manager.exe.
Aidan Ryan
13

Une autre option que j'ai dû utiliser avec VSTS:

git config credential.modalprompt false --global

Sten Petrov
la source
3
Merci! Je l'ai trouvé très utile lors de l'utilisation de ssh pour me connecter à distance à mon serveur de production: je ne pouvais pas faire un à git pullcause du bombardement WCM. Avec cette option, j'apprécie les deux mondes: WCM lorsqu'il est connecté physiquement avec le serveur (ou avec Remote Desktop), et être capable de tirer d'un client ssh.
cbuchart le
9

Cela n'a pas fonctionné pour moi:

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...

Mais avec le --forcedrapeau, cela a fonctionné:

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...

Je pouvais voir cette trace après avoir couru:

set git_trace=1

J'ai également ajouté le nom d'utilisateur Git:

git config --global credential.username myGitUsername

Ensuite:

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

À la fin, j'ai mis cette commande:

git config --global credential.modalPrompt false

Je vérifie si l'agent SSH est en cours d'exécution - ouvrez une fenêtre Bash pour exécuter cette commande

eval "$(ssh-agent -s)"

Ensuite, dans le dossier utilisateurs de l'ordinateur / yourName où se trouve .ssh, ajoutez une connexion (toujours dans Bash):

ssh-add .ssh/id_rsa

or

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

J'ai vérifié tous les paramètres que j'ai ajoutés ci-dessus:

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

Et quand je l'ai fait à git pushnouveau, j'ai dû ajouter un nom d'utilisateur et un mot de passe uniquement pour la première fois.

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.

Depuis lors git push, je n'ai plus le message pour entrer mes informations d'identification 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

Après ces paramètres, j'ai également reçu un e-mail avec le message:

 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.
Peter Mortensen
la source
6

J'avais eu ce problème et je n'ai supprimé que le fichier git-credential-manager.exe de:

C:\Program Files\Git\mingw64\libexec\git-core
Henry Vásquez
la source
6

Je voulais utiliser le gestionnaire d'informations d'identification pour une utilisation normale, mais j'ai des scripts pour lesquels je ne veux évidemment aucune invite git.exe. Voici comment j'invoque Git à partir de mes scripts:

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

De cette façon, le script voit toujours le paramètre "correct" sans invite sans avoir à adapter aucune configuration.

(Git pour Windows 2.13.3)


Une variante que j'ai trouvée et qui pourrait également être utile est de définir:

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> ...

Mais notez que git.exe -c credential.interactive=never <command> ... cela ne fonctionne pas (il semble que la -cchose ne soit pas acheminée vers Git Credential Manager pour Windows ou autre).

De cette façon, vous pouvez utiliser le GCMfW, mais il ne vous le demandera jamais; il recherchera simplement les informations d'identification, ce qui peut être très utile dans des environnements non interactifs.

Martin Ba
la source
5

Utilisation:

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

Cela fonctionne sur les systèmes Windows. Je l'ai testé et cela a fonctionné pour moi.

Peter Mortensen
la source
3

Peut-être que le problème est Sourcetree .

  1. Allez dans OutilsOptions

  2. Décochez "Vérifier les télécommandes par défaut pour les mises à jour toutes les [10] minutes"

  3. Redémarrez Sourcetree!

hatanooh
la source
1

et si: wq ne fonctionne pas comme mon cas, utilisez ctrl + z pour abandonner et quitter, mais ceux-ci créeront probablement plusieurs fichiers de sauvegarde pour travailler avec plus tard - Adeem 19 janvier à 9:14

Assurez-vous également d'exécuter Git en tant qu'administrateur! Sinon, le fichier ne sera pas enregistré (dans mon cas).

utilisateur3437639
la source
1

J'ai rencontré le même problème sur Ubuntu 18.10 (Cosmic Cuttlefish), incapable de supprimer en utilisant des moyens normaux. Je l'ai utilisé git config --global --unset credential.helper, et cela semblait faire l'affaire.

capricieux
la source
1

Sous le dossier "user" c: // user, regardez le fichier ".gitconfig" puis supprimez la ligne http et proxy.

user3642831
la source
1

Pour empêcher l'utilisation de la boîte de dialogue git config --global credential.modalPrompt false, cela conduira les requêtes vers la console.

Mahdi Afzal
la source
0

vous pouvez simplement supprimer le gestionnaire d'informations d'identification.

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
Caio Borges
la source