Je remarque que dans la dernière version de Git, la valeur par défaut est désormais de faire apparaître une boîte de dialogue "Git Credential Manager for Windows" au lieu de me demander mon 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 sur 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 des informations d'identification Windows ou un démon interne. Je veux désactiver toute la mise en cache des informations d'identification .
OK, j'ai découvert qu'il fallait AVOIDER de cocher la case "Git Credential Manager" pendant l'installation de Git pour Windows ou d'exécuter (après l'installation) bash Shell en tant qu'administrateur et d'utiliser git config --edit --system
pour supprimer la ligne helper = manager
afin qu'elle ne soit plus enregistrée un assistant d'identification.
Pour les points bonus, utilisez git config --edit --global
et insérez:
[core]
askpass =
Pour désactiver également la fenêtre contextuelle des informations d'identification OpenSSH.
J'ai pu désinstaller Git Credential Manager pour Windows à l'aide de l'option de désinstallation suivante:
git-credential-manager.exe uninstall
Exécutez cette commande dans C:\Program Files\Git\mingw64\libexec\git-core
Tu peux soit:
Une autre option que je devais utiliser avec VSTS:
git config credential.modalprompt false --global
Pour moi n'a pas fonctionné:
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 --force flag 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 aussi 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 je mets cette commande:
git config --global credential.modalPrompt false
Je vérifie si l'agent ssh est en cours d'exécution - ouvre une fenêtre bash pour exécuter cette commande
eval "$(ssh-agent -s)"
Puis, dans le dossier utilisateurs/votre nom de l’ordinateur, où se trouve .ssh Ajouter une connexion (toujours en 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 j'ai refait git Push
seulement pour la première fois, je devais ajouter un nom d'utilisateur et passer.
git Push
Please enter your GitHub credentials for https://[email protected]/
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 que sur git Push
je n'ai plus le message pour entrer mes identifiants git.
D:\projects\react-redux\myProject (master -> Origin) ([email protected])
λ 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 réglages, j'ai aussi reçu un email avec le message:
A personal access token (git: https://[email protected]/
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.
Je mets cela parce que pour moi a travaillé. J'espère que cela aidera les autres aussi.
J'ai eu ce problème, j'ai seulement supprimé le git-credential-manager.exe de
C:\Program Files\Git\mingw64\libexec\git-core
Je voulais utiliser le gestionnaire d'informations d'identification pour une utilisation normale, mais j'ai des scripts pour lesquels je ne souhaite évidemment pas recevoir d'invites de la part de git.exe
. Voici comment j'appelle git à partir de mes scripts:
set GIT_TERMINAL_Prompt=0
git -c core.askpass= -c credential.helper= <command> ...
De cette manière, le script voit toujours le paramètre "correct" no-Prompt sans avoir à adapter aucune configuration.
(git pour Windows 2.13.3)
Une variante que j'ai trouvée qui pourrait aussi ê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> ...
Ne fonctionne PAS (il semble que -c
ne soit pas acheminé vers Git-Credential-Manager-for-Windows ou autre).
De cette façon, vous pouvez utiliser le GCMfW, mais il ne vous demandera jamais, il recherchera simplement les informations d'identification, ce qui peut être très utile dans les environnements non interactifs.
et si: wq ne fonctionne pas comme dans mon cas, utilisez les touches ctrl + z pour annuler et quitter, mais elles créeront probablement plusieurs fichiers de sauvegarde plus tard.
Veillez également à exécuter Git en tant qu'administrateur! Sinon, le fichier ne sera pas enregistré (dans mon cas).
J'ai rencontré le même problème sous Ubuntu (18.10), incapable d'éliminer avec des moyens normaux .J'ai utilisé git config --global --unset credential.helper
, qui semblait faire l'affaire.
C:\Program Files\Git\mingw64\libexec\git-core
git credential-manager uninstall --force
Fonctionne sur les systèmes Windows. J'ai testé et cela fonctionne pour moi. Merci d'avoir partagé.
Peut-être que le problème est SourceTree .
Aller aux outils -> options
Décochez "Vérifier les télécommandes par défaut pour les mises à jour toutes les 10 minutes"
Redémarrez SourceTree!
vous pouvez simplement supprimer le Credential Manager.
C:\Utilisateurs \\ AppData\Local\Programmes\Git\mingw64\libexec\git-core