Git credential helper - actualizar contraseña

198

Actualmente estoy usando GitHub sobre HTTPS y tengo instalada la última versión de Git (1.9.0) junto con el asistente de credenciales de Git en Windows 7.

Al configurar mi entorno, le dije a git-credentials que recordara permanentemente mi nombre de usuario y contraseña.

Recientemente actualicé mi contraseña de GitHub a través del sitio web y ya no puedo presionar / extraer / recuperar, etc.

¿Cómo haría para actualizar mi contraseña en git-credentials helper en Windows 7?

Andrew Thomson
fuente
66
Simple, use "git config --global credential.helper wincred" e ingrese ID de usuario y contraseña; entonces esto se guardará para usted, la próxima vez que cambie su contraseña, vuelva a ejecutar el comando anterior.
Akshay Lokur
@AkshayLokur esta es la respuesta correcta.
Ravimallya
Si todo lo demás falla y está utilizando TortoiseGit, es posible que desee probar una acción a través de eso. Por ejemplo, una extracción o extracción con Tortoise solicitará la contraseña, que luego puede actualizar. Esto parece sobrescribir el caché de Git Bash, y puede usar bash una vez más.
Paul F. Wood

Respuestas:

280

Ninguna de estas respuestas terminó funcionando para mi problema de credenciales de Git. Esto es lo que funcionó si alguien lo necesita (estoy usando Git 1.9 en Windows 8.1).

Para actualizar sus credenciales, vaya a Panel de controlAdministrador de credencialesCredenciales genéricas . Encuentre las credenciales relacionadas con su cuenta de Git y edítelas para usar la contraseña actualizada.

Referencia: Cómo actualizar sus credenciales de Git en Windows

Tenga en cuenta que para usar el Administrador de credenciales de Windows para Git necesita configurar el asistente de credenciales de esta manera:

git config --global credential.helper wincred

Si tiene varias cuentas de GitHub que usa para diferentes repositorios, entonces debe configurar las credenciales para usar la ruta completa del repositorio (en lugar de solo el dominio, que es el predeterminado):

git config --global credential.useHttpPath true
xgo
fuente
21
Esta debería ser la respuesta aceptada si git config --listcontiene credential.helper=wincred.
MF
66
Trabajó para mí, gracias, y también aprendí sobre el administrador de credenciales de Windows.
rwalter
Esta. cambiar la contraseña no funcionó, pero eliminé las credenciales y luego git push solicitó las credenciales nuevamente y funcionó.
BiAiB
2
Creo que funciona para la ventana 8.1 y la ventana 10 también. En mi caso: ventana 10 Pro, git 2.17
Thinhbk
2
Para cualquiera que (como yo) elimine las credenciales almacenadas esperando otro aviso, pero el aviso no se muestra. Desde el Administrador de credenciales, puede ADDa Generic Credentialcon una dirección de git:http://yourserver:port/. Http o Https es lo mismo, lo importante es git:al principio.
A. Chiesa
101

En mi primer intento de recuperar Git después de cambiar mi contraseña, me dijeron que mi combinación de nombre de usuario / contraseña no era válida. Esto era correcto ya que git-credential helper había almacenado en caché mis viejos valores.

Sin embargo, intenté otra búsqueda de git después de reiniciar mi terminal / símbolo del sistema y esta vez el asistente de credenciales me solicitó ingresar mi nombre de usuario y contraseña de GitHub.

Sospecho que la solicitud inicial de recuperación de Git fallida en combinación con el reinicio de mi terminal / símbolo del sistema resolvió esto por mí.

¡Espero que esta respuesta ayude a alguien más en una posición similar en el futuro!

Andrew Thomson
fuente
2
Simplemente reinicie Git Bash, aparecerá un cuadro de diálogo para ingresar un nuevo nombre de usuario / contraseña.
Quan
2
Para el registro, pude solucionar esto haciendo otro pull / fetch sin reiniciar mi sesión de Powershell en Windows 7. Windows me solicitó mis nuevos créditos en el segundo intento.
Bender the Greatest
reiniciar la consola / aplicación hizo que "wincred" funcionara para mí. (Tuve que reiniciar mi consola y "Atom" y todo funcionó bien)
low_rents
3
Ingresar cualquier comando git que requiera credenciales por segunda vez parece hacer esto, no solo git fetch, también funcionó en un segundo git clone.
navigator_
¡muchas gracias! Cada vez que cambio mi contraseña de dominio, debo recordar cómo actualizar mis credenciales. Git fetch: ¡funcionó para mí!
Alexander Brattsev
74

Solución usando la línea de comando para Windows, Linux y MacOS

Si ha actualizado su contraseña de GitHub en el servidor de GitHub, en el primer intento del git fetch/pull/pushcomando se genera la autenticación fallida mensaje de error de .

Ejecute el mismo git fetch/pull/pushcomando por segunda vez y le solicitará credenciales (nombre de usuario y contraseña). Ingrese el nombre de usuario y la nueva contraseña actualizada del servidor GitHub y el inicio de sesión será exitoso.

Incluso tuve este problema, ¡y realicé los pasos anteriores y listo!

Farooque
fuente
@ Vincent: ¿cuál es el problema que tienes?
Farooque
2
Acabo de recibir un control remoto repetido: nombre de usuario o contraseña no válidos. fatal: Falló la autenticación para
RichMeister
1
@RichMeister: a partir de la segunda vez pedirá nombre de usuario / contraseña. Solo proporcione su nombre de usuario / nueva_contraseña.
Farooque
3
Me funcionó en MacOS con credenciales en caché después de un cambio de contraseña. La primera vez, obtenga 'Error de autenticación por ...'. Intentó de nuevo y se le solicitan credenciales, introduzca ID de usuario y la nueva contraseña, y ahora a trabajar de nuevo
Kevin Hooke
1
Esta es la respuesta mejor / más fácil
Ryan Boken
74

Si es un usuario de Windows, puede eliminar o actualizar sus credenciales en Credential Manager.

En Windows 10, vaya a la ruta a continuación:

Panel de controlTodos los elementos del panel de control Administrador de credenciales

O busque "administrador de credenciales" en la sección "Buscar en Windows" en el menú Inicio.

Luego, desde el Administrador de credenciales, seleccione "Credenciales de Windows".

Credential Manager mostrará muchos elementos, incluyendo su perspectiva y el repositorio de GitHub en "Credenciales genéricas"

Haga clic en la flecha desplegable en el lado derecho de su Git: y mostrará opciones para editar y eliminar. Si elimina, la ventana emergente de credenciales aparecerá la próxima vez que busque o extraiga. O puede editar directamente las credenciales allí.

Vins
fuente
3
Después de probar otras opciones, solo esta funcionó para mí. Encontré información aquí: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib
Nota: ¡este control NO ES ACCESIBLE A TRAVÉS DEL METRO UI "PANEL DE CONTROL"! Debe ejecutar control.exemanualmente para ver este control.
AnrDaemon
¡Esto ayudó mucho! Ni siquiera sabía que existían estas herramientas.
mandíbula
35

Primero encuentre la versión que está utilizando con el comando Git git --version. Si tiene una versión más nueva que la 1.7.10, simplemente use este comando:

git config --global credential.helper wincred

Luego, haga lo siguiente git fetch, luego se le solicitará que actualice la contraseña.

Ahora, no solicitará la contraseña varias veces en Git.

Sireesh Yarlagadda
fuente
77
Esto no responde la pregunta
disklosr
2
@disklosr Sí, lo hace. Obliga a Git a solicitar la contraseña actualizada la próxima vez que realice una acción remota.
Nilpo
1
@Nilpo ¿Qué es una "acción remota" entonces? ¿No debería "git push origin xxx" ser una acción remota? No lo esta haciendo. en cambio obtengo remoto: nombre de usuario o contraseña no válidos.
RichMeister
1
Funcionó para mi. Después de ejecutar este comando. Haga "git fetch", se le solicitarán las credenciales, proporciónelas.
Alex
¿Por qué --global? ¿No me arriesgo a que me vuelvan a pedir todos mis repositorios en lugar de solo el afectado?
Thomas Weller
29

Me parece que las respuestas aquí están desactualizadas. Para mí bajo Windows 10 y Git 2.15.0 esto hizo el trabajo:

git credential reject
protocol=https
host=github.com
<Empty line here>

Y luego para configurar el nuevo nombre de usuario y contraseña:

git credential fill
protocol=https
host=github.com
<empty line here>

Después de esto, si las credenciales ahora funcionan en el host de destino deseado, deberíamos usar, git credential approvecomo se menciona en el uso típico de las credenciales de Git (paso 4), para indicar a los ayudantes de credenciales que marquen las credenciales como aprobadas y las reutilicen en futuras conexiones.

atavio
fuente
1
Para mí, al hacer la git credential fillparte como está, generó automáticamente la contraseña incorrecta anterior; He tenido que configurar el nuevo manualmente con este comando para que funcione; de todos modos, gracias, ¡esta respuesta me ayudó con este problema!
Emerson Cardoso
¡Vota a la cima! Cuánto tiempo perdido leyendo soluciones desactualizadas. En realidad, Git Credential Manager tiene la culpa aquí, creo que tengo que pasar por problemas cuando se rotan las contraseñas de dominio.
Janis Veinbergs
1
después fill, ¿no deberíamos usar approve?
Z. Khullah
En mi máquina git credential rejectnunca se completa
Thomas Weller
@ThomasWeller tienes que presionar enter para dejar una línea vacía allí, luego se completa.
atavio
19

FWIW, me topé con este mismo problema (y mi jefe también, por lo que se volvió más intenso).

La solución instantánea es eliminar o corregir sus entradas de Git en el Administrador de credenciales de Windows. Puede que le resulte difícil encontrarlo en su versión localizada de Windows, pero afortunadamente puede iniciarlo desde el diálogo antiguo Windows+ Rejecutar con control keymgr.dllo control /name Microsoft.CredentialManager(o rundll32.exe keymgr.dll, KRShowKeyMgrsi prefiere el aspecto clásico). O ponga esto en un archivo por lotes para sus colegas:cmdkey /delete:git:http://your.git.server.company.com .

En Git Credential Manager de Microsoft, este es un problema conocido que puede solucionarse tan pronto como a principios de 2019 (así que no contenga la respiración).

Jakob
fuente
1
Comprender el Administrador de credenciales de Windows mediante el uso de la interfaz de usuario del Panel de control es excelente, pero se vuelve pesado cuando tiene que actualizar en todas las máquinas. Este comando único es excelente ya que logra lo mismo (elimina las credenciales no válidas existentes) lo que obliga a git a solicitar las credenciales nuevamente la próxima vez que las necesite. En Windows Server 2016, la sintaxis del comando para eliminar la credencial es ligeramente diferente: cmdkey /delete:git:https://your.git.server.company.com
Rudimentario
/delete{:<TargetName>}es la sintaxis oficial , pero descubrí que el acceso directo /del <TargetName>también funciona, al menos en Windows 10 (1803).
Jakob
¡Gran idea para un alias! delpw = !cmdkey /delete:git:$(git remote get-url $1). Uso: git delpw origin(ps: / del no funcionó aquí, gana 10 también)
Z. Khullah
6

Solo cden el directorio donde instaló git-credential-winstore. Si no sabe dónde, simplemente ejecute esto en Git Bash:

cat ~/.gitconfig

Debería imprimir algo parecido a:

[credential]
    helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'

En este caso, su repositorio es C: \ ProgramFile \ GitCredStore. Una vez que esté dentro de esta carpeta usando Git Bash o el comando de Windows, simplemente escriba:

git-credential-winstore.exe erase
host=github.com
protocol=https

No olvides presionar Enterdos veces después protocol=https.

Luc DUZAN
fuente
3

Ninguna de las soluciones actuales me funcionó con git bash 2.26.2. Esto debería funcionar en cualquier caso si está utilizando el administrador de credenciales de Windows.

Un problema es que el administrador de credenciales de Windows se ejecuta para el usuario registrado. En mi caso, por ejemplo, ejecuto git bash con el botón derecho, ejecutar como administrador. Por lo tanto, mis credenciales almacenadas están en un administrador de credenciales al que no puedo acceder con la GUI de Windows si no inicio sesión en Windows como administrador.

Para arreglar esto:

  • Abra un cmd como administrador (o cualquier usuario con el que ejecute bash)
  • Ir a windows / system32
  • Tipo cmdkey /list. Sus credenciales anteriores deberían aparecer aquí, con una parte que diga ... target: xxx ...
  • Escriba cmdkey /delete:xxx, donde xxx es el objetivo de la línea anterior

Debería confirmar que sus credenciales se han eliminado. La próxima vez que realice cualquier operación en git bash que requiera autenticación, una ventana emergente le pedirá sus credenciales.

Jorge.V
fuente