¿Cómo deshabilito Git Credential Manager para Windows?

170

Noté que en la última versión de Git, el valor predeterminado ahora es abrir un cuadro de diálogo "Administrador de credenciales de Git para Windows" en lugar de solicitarme una contraseña en el indicador de Bash cada vez.

Realmente odio este comportamiento. ¿Cómo puedo desactivarlo y volver a ingresar la contraseña en el shell Bash cada vez?

Por cierto, no quiero que Git guarde en caché mis credenciales de ninguna manera , ya sea a través de las credenciales de Windows o algún demonio interno. Quiero deshabilitar todo el almacenamiento en caché de credenciales .

Jez
fuente

Respuestas:

211

OK, descubrí que debes evitar marcar la casilla de verificación "Git Credential Manager" durante el instalador de Git para Windows, o (después de la instalación) ejecutar el shell Bash como Administrador y usar git config --edit --systempara eliminar la helper = managerlínea para que ya no esté registrada como Un ayudante de credencial.

Para puntos de bonificación, use git config --edit --globale inserte:

[core]
    askpass =

Para deshabilitar la ventana emergente de credenciales OpenSSH también.

Jez
fuente
19
Gracias por tu respuesta. Para mí, esta fue la primera vez que usé el editor. Si desea guardar los cambios, presione la tecla de escape y escriba: wq y presione enter (escribir / guardar y salir).
Ben Besuijen
1
¡Muchas gracias! El administrador de credenciales se confundió con el servidor proxy de mi trabajo e hizo que trabajar con Sourcetree fuera una pesadilla. Deshabilitarlo solucionó el problema de inmediato.
Johnny
1
y si: wq no funciona como mi caso, use ctrl + z para abortar y salir, pero estos probablemente harán que el archivo de copia de seguridad múltiple funcione con posterioridad
Adeem
37
Ni la golpee congit config --system --unset credential.helper
Ben Bucero
44
Para aquellos que usan SourceTree, asegúrese de que se esté utilizando la versión de "sistema" de GIT, no la incorporada. Tools -> Options -> Git.
Stevanicus
30

Pude desinstalar Git Credential Manager para Windows usando la opción de desinstalación:

git-credential-manager.exe uninstall

Ejecute este comando en C:\Program Files\Git\mingw64\libexec\git-core

Ian Mercer
fuente
1
Esto simplemente se detiene y después de presionar ctrl-c, escupe este uso:git credential [fill|approve|reject]
ScottN
2
@ScottN estás ejecutando git-credential.exepero necesitas ejecutar git-credential-manager.exe.
Aidan Ryan
13

Otra opción que tuve que usar con VSTS:

git config credential.modalprompt false --global

Sten Petrov
fuente
3
¡Gracias! Lo encontré muy útil cuando uso ssh para conectarme remotamente a mi servidor de producción: no pude hacerlo git pulldebido a la exclusión de WCM. Con esta opción, disfruto de ambos mundos: WCM cuando estoy conectado físicamente con el servidor (o con Escritorio remoto) y puedo extraerlo de un cliente ssh.
cbuchart el
9

No me funcionó:

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

Pero con la --forcebandera funcionó:

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

Pude ver ese rastro después de correr:

set git_trace=1

También agregué el nombre de usuario Git:

git config --global credential.username myGitUsername

Luego:

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

Al final puse este comando:

git config --global credential.modalPrompt false

Compruebo si el agente SSH se está ejecutando: abra una ventana Bash para ejecutar este comando

eval "$(ssh-agent -s)"

Luego, en la carpeta usuarios de computadora / yourName donde está .ssh, agregue una conexión (aún en Bash):

ssh-add .ssh/id_rsa

or

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

Verifiqué todas las configuraciones que agregué arriba:

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

Y cuando volví a hacerlo git push, tuve que agregar el nombre de usuario y la contraseña solo por primera vez.

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.

Desde entonces git push, ya no tengo el mensaje para ingresar mis credenciales de 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

Después de esta configuración, también recibí un correo electrónico con el mensaje:

 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
fuente
6

Tuve ese problema y solo eliminé el archivo git-credential-manager.exe de:

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

Quería usar el administrador de credenciales para uso normal, pero tengo secuencias de comandos donde obviamente no quiero ningún aviso git.exe. Así es como invoco a Git desde mis scripts:

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

De esta forma, el script siempre ve la configuración "correcta" sin mensaje sin tener que adaptar ninguna configuración.

(Git para Windows 2.13.3)


Una variación que encontré que también podría ser útil es establecer:

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

Pero tenga en cuenta que git.exe -c credential.interactive=never <command> ... lo hace no trabajo (parece que la -ccosa no se enruta a través de Git Administrador de credenciales para Windows o lo que sea).

De esa manera, puede usar el GCMfW, pero nunca lo solicitará; solo buscará las credenciales, lo que puede ser muy útil en entornos no interactivos.

Martin Ba
fuente
5

Utilizar:

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

Esto funciona en sistemas Windows. Lo probé y funcionó para mí.

Peter Mortensen
fuente
3

Quizás el problema es Sourcetree .

  1. Vaya a HerramientasOpciones

  2. Desmarque "Verificar los controles remotos predeterminados para actualizaciones cada [10] minutos"

  3. Reiniciar Sourcetree!

hatanooh
fuente
1

y si: wq no funciona como mi caso, use ctrl + z para abortar y salir, pero estos probablemente harán que el archivo de copia de seguridad múltiple funcione más tarde - Adeem 19 de enero a las 9:14

¡También asegúrese de ejecutar Git como administrador! De lo contrario, el archivo no se guardará (en mi caso).

usuario3437639
fuente
1

Encontré el mismo problema en Ubuntu 18.10 (Cosmic Cuttlefish), incapaz de eliminarlo por cualquier medio normal. Yo solía git config --global --unset credential.helper, y eso parecía hacer el truco.

sin sentido
fuente
1

En la carpeta "usuario" c: // usuario, mira el archivo ".gitconfig" y luego elimina la línea http y proxy.

usuario3642831
fuente
1

Para evitar el uso del diálogo git config --global credential.modalPrompt false, eso dirigirá las consultas a la consola.

Mahdi Afzal
fuente
0

simplemente puede eliminar el Administrador de credenciales.

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