¿Hay alguna manera de almacenar en caché las credenciales https para enviar confirmaciones?
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
?
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
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-credentials
su %HOME%
directorio en lugar del directorio del proyecto: use la --global
bandera
git config --global credential.helper store