¿Hay alguna manera de almacenar en caché las credenciales https para enviar confirmaciones?

Resuelto Zepplock asked hace 13 años • 28 respuestas

Recientemente cambié a sincronizar mis repositorios con https:// en GitHub (debido a problemas con el firewall) y siempre me pide una contraseña.

¿Hay alguna forma de almacenar en caché las credenciales, en lugar de autenticarse cada vez git push?

Zepplock avatar Mar 18 '11 00:03 Zepplock
Aceptado

Desde Git 1.7.9 (lanzado en 2012), existe un mecanismo ingenioso en Git para evitar tener que escribir su contraseña todo el tiempo para HTTP/HTTPS, llamado asistentes de credenciales .

Puede utilizar uno de los siguientes asistentes de credenciales:

git config --global credential.helper cache

El valor de caché credential.helper le dice a Git que mantenga su contraseña almacenada en la memoria caché durante una cantidad determinada de minutos . El valor predeterminado es 15 minutos, puedes establecer un tiempo de espera más largo con:

# Cache for 1 hour
git config --global credential.helper "cache --timeout=3600"

# Cache for 1 day
git config --global credential.helper "cache --timeout=86400"

# Cache for 1 week
git config --global credential.helper "cache --timeout=604800"

También puede almacenar sus credenciales de forma permanente si así lo desea; consulte las otras respuestas a continuación.

La ayuda de GitHub también sugiere que si estás en Mac OS X y usaste Homebrew para instalar Git, puedes usar el almacén de claves nativo de Mac OS X con:

git config --global credential.helper osxkeychain

Para Windows , existe una ayuda llamada Git Credential Manager para Windows o wincred en msysgit .

git config --global credential.helper wincred # obsolete

Con Git para Windows 2.7.3+ (marzo de 2016):

git config --global credential.helper manager

Para Linux , usaría (en 2011) gnome-keyring(u otra implementación de llavero como KWallet).

Hoy en día (2020), eso sería (en Linux)

sombrero

sudo dnf install git-credential-libsecret
git config --global credential.helper /usr/libexec/git-core/git-credential-libsecret

ubuntu

sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Mark Longair avatar Mar 17 '2011 17:03 Mark Longair

También puedes hacer que Git almacene tus credenciales de forma permanente usando git-credential-store de la siguiente manera:

git config credential.helper store

Nota: Si bien esto es conveniente, Git almacenará sus credenciales en texto sin cifrar en un archivo local (.git-credentials) en el directorio de su proyecto (consulte a continuación el directorio "inicio"). Si no le gusta esto, elimine este archivo y cambie a la opción de caché.

Si desea que Git vuelva a solicitarle credenciales cada vez que necesite conectarse al repositorio remoto, puede ejecutar este comando:

git config --unset credential.helper

Para almacenar las contraseñas en .git-credentialssu %HOME%directorio en lugar del directorio del proyecto: use la --globalbandera

git config --global credential.helper store
Giri Alwar avatar Sep 03 '2012 01:09 Giri Alwar