Obtenga resultados en el error 'indicadores de terminal deshabilitados' para el repositorio privado de github
Creé el repositorio privado examplesite/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, todo bien. Creó el archivo Scheduler.go, lo agregó al repositorio y lo envió.
$ 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.
Esto me resultó extremadamente útil y resolvió mi problema. Este comando permitirá que su 2FA haga su trabajo (y le evitará la molestia de ingresar su nombre de usuario y contraseña):
Para Github:
git config --global --add url."[email protected]:".insteadOf "https://github.com/"
Para Gitlab:
git config --global --add url."[email protected]:".insteadOf "https://gitlab.com/"
Fuente: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html
Si no estás usando 2FA, aún puedes usar SSH y esto funcionará.
El resultado .gitconfig
será como:
[url "[email protected]:"]
insteadOf = https://github.com/
go get desactiva 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
Se queja porque necesita usarlo ssh
en lugar de https
pero su git todavía está configurado con https. Básicamente, como otros mencionaron anteriormente, debe habilitar las indicaciones o configurar git para usar ssh
en lugar de https
. una forma sencilla de hacer esto ejecutando lo siguiente:
git config --global --add url."[email protected]:".insteadOf "https://github.com/"
o si ya usa ssh
with git
en su máquina, puede editar ~/.gitconfig
y agregar de forma segura la siguiente línea en la parte inferior
Nota: Esto cubre todo SVC, control de versiones de origen, eso depende de lo que uses exactamente, github, gitlab, bitbucket).
# Enforce SSH
[url "ssh://[email protected]/"]
insteadOf = https://github.com/
[url "ssh://[email protected]/"]
insteadOf = https://gitlab.com/
[url "ssh://[email protected]/"]
insteadOf = https://bitbucket.org/
Si desea mantener los pompts de contraseña deshabilitados, debe almacenar la contraseña en caché. 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 se trata de un repositorio privado para una empresa o para usted mismo, es posible que deba omitir el uso de proxy o base de datos de suma de verificación para dichos repositorios para evitar exponerlos públicamente.
Para hacer esto, necesita configurar 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 el proxy ni la base de datos de suma de verificació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,
export GOPRIVATE=*.corp.example.com,github.com/mycompany/*
O
go env -w GOPRIVATE=github.com/mycompany/*
- Para obtener más información sobre cómo resolver problemas de validación de suma de comprobación de paquetes/módulos privados, lea este artículo .
- Para obtener más información sobre los módulos go 13 y las nuevas mejoras, consulte las notas de la versión de los módulos Go 1.13 .
Una última cosa que no debes olvidar mencionar, aún puedes configurar go get
para autenticar y recuperar https
, todo lo que necesitas hacer es agregar la siguiente línea a$HOME/.netrc
machine github.com login USERNAME password APIKEY
- Para las cuentas de GitHub, la contraseña puede ser un token de acceso personal .
- Para obtener más información sobre cómo hacer esto, consulte la página Ir a preguntas frecuentes .
No dude en dejar un comentario en caso de que desee más apoyo o ayuda.