tag - vaya a obtener resultados en el error ''solicitudes de terminal deshabilitadas'' para el repositorio privado de github
git ver archivos modificados (6)
Encontré esto extremadamente útil, y resolvió mi problema. Este comando permitirá que su 2FA haga lo suyo (y le ahorrará la molestia de ingresar su nombre de usuario y contraseña):
git config --global --add url."[email protected]:".insteadOf "https://github.com/"
Fuente: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html
Si no está usando 2FA, aún puede usar SSH y esto funcionará.
Editar: agregó la bandera
--add
como lo sugiere
slatunje
.
Creé el ejemplo de repositorio privado / myprivaterepo usando la interfaz de usuario de Github desde mi navegador.
Luego fui a mi directorio go (en el escritorio) y lo cloné:
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
Hasta ahora tan bueno. Creé el archivo Scheduler.go, lo agregué al repositorio y lo presioné.
$ vim scheduler.go
$ git add scheduler.go
$ git commit
$ git push
Todo está bien. Pero cuando fui a una computadora portátil limpia e intenté clonar el repositorio, recibí un error:
# Now on laptop, which doesn''t yet know about the repo
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
# At this point it should ask for my user ID and password ,right? But it doesn''t.
# Instead, this error occurs:
cd .; git clone https://github.com/examplesite/myprivaterepo /Users/tom/go/src/github.com/examplesite/myprivaterepo
Cloning into ''/Users/tom/go/src/github.com/examplesite/myprivaterepo''...
fatal: could not read Username for ''https://github.com'': terminal prompts disabled
package github.com/examplesite/myprivaterepo: exit status 128
¿Por qué mi computadora portátil odia mi propio repositorio y cómo puedo hacer que acepte su destino? Gracias.
Primero:
go get
se negará a autenticarse en la línea de comando.
Por lo tanto, debe almacenar en caché las credenciales en git.
Debido a que uso osx, puedo usar el asistente de credenciales osxkeychain.
2do Para mí, tengo habilitado 2FA y, por lo tanto, no pude usar mi contraseña para la autenticación. En cambio, tuve que generar un token de acceso personal para usar en lugar de la contraseña.
- configurar el asistente de credenciales osxkeychain https://help.github.com/articles/caching-your-github-password-in-git/
- Si usa TFA en lugar de usar su contraseña, genere un token de acceso personal con alcance de repositorio https://github.com/settings/tokens
-
git clone un repositorio privado solo para hacer que guarde en caché la contraseña
git clone https://github.com/user/private_repo
y usó su nombre de usuario github.com para nombre de usuario y el token de acceso personal generado para contraseña. -
Se eliminó el repositorio y la nueva prueba clonados para garantizar que los créditos se almacenaron en caché:
git clone https://github.com/user/private_repo
y esta vez no se solicitaron créditos.- go get funcionará con cualquier repositorio al que pueda acceder el token de acceso personal. Es posible que deba repetir los pasos con otras cuentas / tokens ya que los permisos varían.
Si configura su gitconfig con esta opción, más tarde tendrá un problema para clonar otros repositorios de GitHub
git config --global --add url. "[email protected]". Instead, "https://github.com/"
En cambio, le recomiendo que use esta opción
echo "export GIT_TERMINAL_PROMPT=1" >> ~/.bashrc || ~/.zshrc
y no olvide generar un token de acceso desde su repositorio privado. Cuando se le solicite ingresar su contraseña, simplemente pegue el token de acceso. Feliz clon :)
Si solo quieres
go get
a trabajar muy rápido y seguir adelante con tu trabajo ...
Solo exporta
GIT_TERMINAL_PROMPT=1
$ export GIT_TERMINAL_PROMPT=1
$ go get [whatever]
Ahora le pedirá un usuario / pase para el resto de su sesión de shell.
Ponga esto en su
.profile
o
git
configuración como se
.profile
arriba para obtener una solución más permanente.
Tuve el mismo problema en Windows "error: no se pudo ejecutar el script de solicitud (código de salida 1) fatal: no se pudo leer el nombre de usuario para '' https://github.com '': Sin error" al intentar iniciar sesión en github a través del diálogo de inicio de sesión. Cuando cancelé el cuadro de diálogo, git me solicitó inicio de sesión y contraseña en la línea de comando y funcionó bien.
go get deshabilita el "indicador de terminal" de forma predeterminada. Esto se puede cambiar configurando una variable de entorno de git:
env GIT_TERMINAL_PROMPT=1 go get github.com/examplesite/myprivaterepo