Git push requiere nombre de usuario y contraseña

Resuelto TooCooL asked hace 13 años • 31 respuestas

Cloné un repositorio Git desde mi cuenta de GitHub a mi PC.

Quiero trabajar tanto con mi PC como con mi computadora portátil, pero con una cuenta de GitHub.

Cuando intento enviar o extraer GitHub usando mi PC, se requiere un nombre de usuario y contraseña, ¡pero no cuando estoy usando la computadora portátil!

No quiero escribir mi nombre de usuario y contraseña cada vez que interactúo con  origin. ¿Que me estoy perdiendo aqui?

TooCooL avatar Jul 04 '11 03:07 TooCooL
Aceptado

Una causa común es la clonación utilizando el valor predeterminado (HTTPS) en lugar de SSH. Puede corregir esto yendo a su repositorio, haciendo clic en "Clonar o descargar", luego haciendo clic en el botón "Usar SSH" encima del campo URL y actualizando la URL de su control remoto de origen de esta manera:

git remote set-url origin [email protected]:username/repo.git

Puedes verificar si has agregado el control remoto como HTTPS o SSH usando:

git remote -v

Esto está documentado en GitHub: Cambio de URL remotas de HTTPS a SSH .

Tekkub avatar Jul 03 '2011 21:07 Tekkub

Autenticación permanente con repositorios Git

Ejecute el siguiente comando para habilitar el almacenamiento en caché de credenciales :

$ git config credential.helper store
$ git push https://github.com/owner/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://[email protected]': <PASSWORD>

También debes especificar que el almacenamiento en caché expire ,

git config credential.helper 'cache --timeout 7200'

Después de habilitar el almacenamiento en caché de credenciales, se almacenarán en caché durante 7200 segundos (2 horas) . 43.200 s = 12 h (iniciar sesión una vez al día) también podría ser una opción razonable para algunos.


Como comentó SebastianH , también podemos usar comandos similares para configurar esto no por repositorio sino globalmente:

git config --global credential.helper store
git config --global credential.helper 'cache --timeout 7200'
Jaykumar Patel avatar Feb 17 '2015 13:02 Jaykumar Patel

Me encontré con el mismo problema y la solución más simple que encontré fue usar la URL SSH en lugar de HTTPS:

ssh://[email protected]/username/repo.git

Y no esto:

https://github.com/username/repo.git

Ahora puedes validar solo con la clave SSH en lugar de usernamey password.

Anton Salikhmetov avatar Jun 14 '2012 07:06 Anton Salikhmetov

Además de cambiar a SSH, también puedes seguir usando HTTPS, si no te importa escribir tu contraseña en texto claro. Pon esto en tu ~/.netrcy no te pedirá tu nombre de usuario/contraseña (al menos en Linux y Mac):

machine github.com
       login <user>
       password <password>

Adición (ver el segundo comentario de VonC): en Windows el nombre del archivo es %HOME%\_netrc.

Lea también el primer comentario de VonC en caso de que desee cifrar.

Otra adición (ver el comentario del usuario137717) que puedes usar si tienes Git 1.7.10 o posterior .

Guarde en caché su contraseña de GitHub en Git usando un asistente de credenciales :

Si está clonando repositorios de GitHub usando HTTPS, puede usar un asistente de credenciales para indicarle a Git que recuerde su nombre de usuario y contraseña de GitHub cada vez que se comunique con GitHub.

Esto también funciona en Linux, Mac y Windows.

rintcius avatar Jan 19 '2013 19:01 rintcius

Para los no iniciados que están confundidos por las respuestas anteriores, pueden hacer:

git remote -v

Que responderá con algo como

origin    https://[email protected]/yourname/yourrepo.git (fetch)
origin    https://[email protected]/yourname/yourrepo.git (push)

Luego puede ejecutar el comando que muchos otros han sugerido, pero ahora conoce su nombre y su repositorio desde arriba, por lo que puede simplemente cortar y pegar yourname/yourrepo.gitdesde arriba en:

git remote set-url origin [email protected]:yourname/yourrepo.git
Davide avatar Feb 13 '2014 17:02 Davide