git: 'credential-cache' no es un comando git

264

Seguí estas instrucciones al pie de la letra, incluida la parte sobre el almacenamiento en caché de contraseñas. Parece que las instrucciones son incorrectas, porque cada vez git push origin masterque recibo este error:

git: 'credential-cache' is not a git command. See 'get --help'.

... en ese momento me veo obligado a ingresar mi nombre de usuario y contraseña. Después de hacerlo, me aparece el mismo mensaje de error nuevamente, seguido de la salida de git push.

Aquí está el contenido de mi archivo .gitconfig:

[user]
    name = myusername
    email = [email protected]
[credential]
    helper = cache

Para ser claros, después de instalar Git y ejecutar Git Bash, esto es exactamente lo que escribí:

git config --global user.name "myusername"
git config --global user.email "[email protected]"
git config --global credential.helper cache

Por favor ayuda. ¡Esto es muy frustrante!

Big McLargeHuge
fuente
53
Para eliminar el mensaje, "git: 'credential-cache' no es un comando git", ejecute "git config --global --unset credential.helper", luego puede seguir las instrucciones a continuación.
Wallace Kelly
55
@Wally +1 Gracias, tu comando funcionó para mí solo después de eliminarlo --global.
Web_Designer
1
alternativamente, puede eliminar el mensaje modificando el archivo .git / config manualmente (es decir, eliminar las líneas a continuación [credencial])
tarikakyol
Fwiw para aquellos que leen las diversas sugerencias de Windows a continuación, git config credential.helper cache hizo el trabajo para mí con Cygwin versión 2.13.2 git.
Flash Sheridan

Respuestas:

323

De un blog que encontré :

"Este [git-credential-cache] no funciona para sistemas Windows ya que git-credential-cache se comunica a través de un socket Unix".

Git para Windows

Dado que msysgit ha sido reemplazado por Git para Windows, usar Git para Windows es ahora la opción más fácil. Algunas versiones del instalador de Git para Windows (por ejemplo, 2.7.4) tienen una casilla de verificación durante la instalación para habilitar el Administrador de credenciales de Git. Aquí hay una captura de pantalla:

captura de pantalla del asistente de instalación de Git para Windows 2.7.4

¿Sigues usando msysgit? Para las versiones de msysgit 1.8.1 y superiores

El wincredayudante se agregó en msysgit 1.8.1. Úselo de la siguiente manera:

git config --global credential.helper wincred

Para versiones de msysgit anteriores a 1.8.1

Primero, descargue git-credential-winstore e instálelo en su directorio git bin.

Luego, asegúrese de que el directorio que contiene git.cmd esté en su variable de entorno Path. El directorio predeterminado para esto es C: \ Archivos de programa (x86) \ Git \ cmd en un sistema de 64 bits o C: \ Archivos de programa \ Git \ cmd en un sistema de 32 bits. Una manera fácil de probar esto es iniciar un símbolo del sistema y escribir git. Si no obtiene una lista de comandos git, entonces no está configurada correctamente.

Finalmente, inicie un símbolo del sistema y escriba:

git config --global credential.helper winstore

O puede editar su archivo .gitconfig manualmente:

[credential]
    helper = winstore

Una vez que haya hecho esto, puede administrar sus credenciales de git a través del Administrador de credenciales de Windows que puede extraer a través del Panel de control de Windows.

Nate Cook
fuente
44
gitcredentialstore.codeplex.com contiene preguntas frecuentes. Me ayudó a instalar winstore con éxito. Los bloqueos binarios a menos que lo ejecutes desde git-bash.
ruruskyi
8
FYI tuve que instalar con derechos de administrador explícitos. Sin él, recibí el error "git: 'credential-winstore' no es un comando git. Vea 'git --help'". Mi .gitconfig ahora también se ve un poco diferente, ya que la [línea de credencial] tiene "helper =! 'C: \\ Users \\ Malachi \\ AppData \\ Roaming \\ GitCredStore \\ git-credential-winstore.exe' '
Malaquías el
el mío lanza una excepción no controlada y muere - System.Diagnostics.Process.StartWithShellExecuteEx (ProcessStartInfo startInfo)
Andrew
1
¿Hay alguna razón por la que usarían sockets Unix en una aplicación multiplataforma? Y si es así, ¿por qué git-credential-winstore no se entrega con la versión de Windows de Git de forma predeterminada?
Domi
3
La herramienta git-credential-winstore no funciona para mí. Solía ​​hacerlo, pero de repente me preguntan por todo el lugar. He comprobado .git-config y el Administrador de credenciales de Windows y todo lo que debería estar allí. Simplemente no funciona y realmente no tengo idea de por qué. :(
Chris McKenzie
30

Primer intento git config --global credential.helper wincred

Luego ve a: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

luego haga clic en agregar una credencial en Internet or network address: agregar git:https://{nombre de usuario}.github.com

User: {nombre}

Password: {Contraseña}

Ivandro Ismael Gomes Jao
fuente
2
Credential Manager está en Cuentas de usuario y Seguridad familiar en Windows 7
Casey Murray
1
¡GRACIAS! Me llevó una hora descubrir cómo reparar mi Windows Credential Manager después de cambiar mi contraseña de dominio. Santo cielo, qué laberinto.
SadBunny
3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}desde la consola también se iniciará el Credential Manager.
Jeroen Wiert Pluimers
1
Gracias, mi problema está solucionado :)
Diallo
21

Enfrenté este problema mientras usaba AptanaStudio3 en windows7. Esto me ayudó:

git config --global credential.helper wincred

Código tomado de aquí

Ikrom
fuente
10

Ahora hay una manera mucho más fácil de configurar el almacenamiento en caché de contraseñas de Git haciendo doble clic en un pequeño exe en Windows. El programa todavía se basa en lo git-credential-winstoremencionado por la respuesta más votada, aunque el proyecto se ha movido de GitHub a http://gitcredentialstore.codeplex.com/

Puede descargar el exe (y un binario para Mac) de esta publicación de blog: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage

Saheed
fuente
Esta es la respuesta que estaba buscando. Microsoft ha comenzado a mantener este proyecto. Almacena las contraseñas en el almacén de credenciales de Windows.
Gordolio
10

Un error similar es 'credential-wincred' is not a git command

Las respuestas aceptadas y populares ahora están desactualizadas ...

wincredes para el proyecto git-credential-winstore que ya no se mantiene .

Fue reemplazado por Git-Credential-Manager-for-Windows mantenido por el código abierto de Microsoft .

Descargue la versión como archivo zip del enlace de arriba y extraiga el contenido a

\cygwin\usr\libexec\git-core

(o \cygwin64\usr\libexec\git-corecomo puede ser)

Luego habilítelo, (configurando el global .gitconfig) - ejecute:

git config --global credential.helper manager

Cómo utilizar

No se necesita más configuración.

Funciona [automáticamente] cuando se necesitan credenciales.

Por ejemplo, cuando se empuja a Azure DevOps, abre una ventana e inicializa un flujo oauth2 para obtener su token.

árbitro:

TT--
fuente
8

Primero encuentre la versión que está utilizando para GIT.

usando este comando: git --version

si tiene una versión más nueva que la 1.7.10.

Entonces simplemente use este este comando.

git config --global credential.helper wincred

Referencia

Sireesh Yarlagadda
fuente
6

Por el bien de otros que vienen sobre este problema, tuve el mismo problema en Ubuntu (es decir, que mis contraseñas no se almacenaban en caché, a pesar de haber configurado la opción correctamente y obtener el error git: 'credential-cache' is not a git command.), hasta que descubrí que esta característica es solo disponible en Git 1.7.9 y superior .

Al estar en una distribución anterior de Ubuntu (Natty; soy un terco usuario de Gnome 2), la versión en el repositorio era git versión 1.7.4.1. Utilicé el siguiente PPA para actualizar: https://launchpad.net/~git-core/+archive/ppa

Johann
fuente
1
Todavía estoy obteniendo git: 'credential-cache' is not a git command.incluso después de actualizar a la versión 2.8.2 en Windows, ¡aunque el caché de credenciales funciona! Probablemente creé este problema usando algún git configcomando antes.
Buttle Butkus
1
@ButtleButkus git config altera cualquiera ~/.gitconfigo el repositorio local .git/config, dependiendo de si --globalse utilizó el indicador. Mire esos dos archivos para cualquier cosa relacionada con las credenciales.
Johann
5

Por el bien de otros que tienen este problema, aterricé aquí porque traté de ser lindo con la forma en que configuré un nuevo repositorio de github, pero según el asistente de credenciales de la página de configuración no funciona a menos que clones un repositorio.

"Sugerencia: el asistente de credenciales solo funciona cuando clonas una URL del repositorio HTTPS. Si usas la URL del repositorio SSH, las claves SSH se usan para la autenticación. Esta guía ofrece ayuda para generar y usar un par de claves SSH".

Andrés
fuente
4

Solucioné este problema eliminando la credentialsección de la configuración del proyecto específico:

  • Acabo de escribir: git config -e
  • Dentro del editor eliminé toda la sección [credential] helper = cache.

Esto eliminó el mensaje molesto:

git: 'credential-cache' is not a git command. See 'git --help'.

Pini Cheyni
fuente
1
Probé muchas soluciones de arriba y esta es la única que funcionó. Simplemente fui a mi carpeta .git, abrí el archivo de configuración y eliminé [credential] helper = global (lo configuré en "global" accidentalmente). Muchas gracias Pini Cheyni.
Filip Savic el
1
Me alegra haber podido ayudar
Pini Cheyni
3

Me doy cuenta de que llego un poco tarde a la conversación, pero encontré exactamente el mismo problema. En mi configuración de git tenía dos credenciales de entrada ...

En mi archivo .gitconfig

[credential]
helper = cached
[credentials]
helper = wincred

La solución: Cambié mi archivo .gitconfig a la configuración a continuación

[credential]
helper = wincred
[credentials]
helper = wincred
Jason Phillips
fuente
0

Tuvimos el mismo problema con nuestros repositorios de Azure DevOps después de que nuestro dominio cambió, es decir, de @ xy.com a @ xyz.com. Para solucionar este problema, generamos un token de acceso personal nuevo con los siguientes permisos:

Código: leer y escribir Embalaje: leer

Luego abrimos el Administrador de credenciales de Windows, agregamos una nueva credencial genérica de Windows con los siguientes detalles:

Dirección de Internet o de red: "git: { projectname } @ dev.azure.com / { projectname }" - como alternativa, debe usar su nombre de repositorio git aquí.
Nombre de usuario: "Token de acceso personal"
Contraseña: { El token de acceso personal generado }

Después, todas nuestras operaciones de git estaban trabajando nuevamente. ¡Espero que esto ayude a alguien más!

DeveloperExceptionError
fuente