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 aquí todo bien. 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.
go
error,git
está devolviendo "mensajes de terminal deshabilitados". ¿Se puede ejecutargit clone https://github.com/examplesite/myprivaterepo
en su computadora portátil?https://github.com/
si la ruta de importación no existe. El proceso git debe ser capaz de mensaje para el nombre de usuario / contraseña, así que debe haber algo diferente en la configuración del ordenador portátil - diferente cáscara, diferente .gitconfig, una variable de entorno, etc.Respuestas:
go get deshabilita el "indicador de terminal" de forma predeterminada. Esto se puede cambiar estableciendo una variable de entorno de git:
fuente
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):
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
--add
bandera como lo sugiere slatunje .fuente
git config --global --add url."[email protected]:".insteadOf "https://github.com/"
[email protected]: Permission denied (publickey). fatal: Could not read from remote repository.
.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 osxkeychain credential helper.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.
git clone https://github.com/user/private_repo
guarde en caché la contraseña 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.fuente
git clone
uno de mis propios repositorios existentes (en realidad es público), se me solicitó, ingreséusername
mi nombre de usuario de GitHub y luego ingresé el token generado parapassword
: eliminó el repositorio clonado, luego volvió a ejecutar elgo get
comando y todo estuvo bien, ¡gracias! (OSX aquí también)Si solo quieres
go get
trabajar muy rápido y seguir adelante con tu trabajo ...Solo exportar
GIT_TERMINAL_PROMPT=1
Ahora le pedirá un usuario / pase para el resto de su sesión de shell. Ponga esto en su
.profile
o configuracióngit
como arriba para una solución más permanente.fuente
Se queja porque necesita usar en
ssh
lugar dehttps
pero su git todavía está configurado con https. así que, básicamente, como otros mencionaron anteriormente, debe habilitar las indicaciones o configurar git para usar enssh
lugar dehttps
. Una forma sencilla de hacerlo ejecutando lo siguiente:o si ya utiliza
ssh
congit
en su máquina, que con seguridad puede editar~/.gitconfig
y añadir la siguiente línea en la parte inferiorNota: Esto cubre todo SVC, control de versión de origen, que depende de lo que use exactamente, github, gitlab, bitbucket)
Si desea mantener las pompas de contraseña deshabilitadas, debe almacenar en caché la contraseña. Para obtener más información sobre cómo almacenar en caché su contraseña de Github en Mac, Windows o Linux, visite esta página .
Para obtener más información sobre cómo agregar ssh a su cuenta de github, visite esta página .
Además, lo que es más importante, si este es un repositorio privado para una empresa o para usted mismo, es posible que deba omitir el uso de la base de datos de proxy o suma de comprobación para dichos repositorios para evitar exponerlos públicamente.
Para hacer esto, debe establecer
GOPRIVATE
una variable de entorno que controle qué módulos el comando go considera privados (no disponibles públicamente) y, por lo tanto, NO debe usar la base de datos de proxy o suma de comprobación.La variable es una lista de patrones separados por comas (misma sintaxis de Go
path.Match
) de prefijos de ruta de módulo. Por ejemplo,O
Una última cosa que no debe olvidar mencionar, aún puede configurar
go get
para autenticar y buscarhttps
, todo lo que necesita hacer es agregar la siguiente línea a$HOME/.netrc
Espero que esto ayude a la comunidad y ahorre tiempo a otros para resolver los problemas descritos rápidamente. no dude en dejar un comentario en caso de que desee más apoyo o ayuda.
fuente
GOPRIVATE
(go env -w GOPRIVATE=github.com/mycompany/*
) es lo único que funcionó para mí. Podría sugerir poner eso bajo su propio título o incluso en una respuesta propia para resaltarlo un poco más.Si configura su gitconfig con esta opción, más tarde tendrá un problema para clonar otros repositorios de GitHub
En cambio, le recomiendo que use esta opción
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 :)
fuente
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 diálogo, git me pidió un nombre de usuario y contraseña en la línea de comando y funcionó bien.
fuente