Criei o repositório de exemplos de repositório particular / myprivaterepo usando a interface do usuário do Github no meu navegador.
Depois fui ao meu diretório go (na área de trabalho) e o clonei:
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
Por enquanto, tudo bem. Criado o arquivo scheduler.go, adicionado ao repositório e enviado por push.
$ vim scheduler.go
$ git add scheduler.go
$ git commit
$ git push
Está tudo bem. Mas quando fui a um laptop limpo e tentei clonar o repositório, recebi um erro:
# 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 que meu laptop está odiando meu próprio repositório e como posso aceitá-lo? Obrigado.
go
erro,git
está retornando "prompts de terminal desativados". Você pode rodargit clone https://github.com/examplesite/myprivaterepo
no seu laptop?https://github.com/
se o caminho de importação não existir. O processo git deve ser capaz de prompt para o nome de usuário / senha, então deve haver algo diferente na configuração laptop - shell diferente, .gitconfig diferente, uma variável env, etc.Respostas:
go get desativa o "prompt do terminal" por padrão. Isso pode ser alterado definindo uma variável de ambiente git:
fonte
Achei isso extremamente útil e resolveu meu problema. Este comando permitirá que o 2FA faça o que quiser (e poupe o trabalho de digitar seu nome de usuário e senha):
Fonte: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html
Se você não estiver usando o 2FA, ainda poderá usar o SSH e isso funcionará.
Editar: adicionada a
--add
bandeira como sugerido por slatunje .fonte
git config --global --add url."[email protected]:".insteadOf "https://github.com/"
[email protected]: Permission denied (publickey). fatal: Could not read from remote repository.
.1º -
go get
recusará a autenticação na linha de comando. Portanto, você precisa armazenar em cache as credenciais no git. Como eu uso o osx, posso usar o auxiliar de credenciais osxkeychain.2º Para mim, tenho o 2FA ativado e, portanto, não pude usar minha senha para autenticação. Em vez disso, tive que gerar um token de acesso pessoal para usar no lugar da senha.
git clone https://github.com/user/private_repo
clona um repositório particular apenas para que ele armazene em cache a senha e usou seu nome de usuário github.com como nome de usuário e o token de acesso pessoal gerado para senha.Removido o repositório recém-clonado e testado novamente para garantir que os creds fossem armazenados em cache -
git clone https://github.com/user/private_repo
e dessa vez não foram solicitados.fonte
git clone
um dos meus próprios repositórios existentes (é público na verdade), foi solicitado o meuusername
, coloque meu nome de usuário no GitHub e, em seguida, coloque o token gerado parapassword
- excluiu o repositório clonado, depois execute novamente ogo get
comando e tudo estava bem - obrigado! (OSX aqui também)Se você quer
go get
trabalhar muito rápido e seguir em frente com o seu trabalho ...Apenas exporte
GIT_TERMINAL_PROMPT=1
Agora, você será solicitado a fornecer um usuário / passe para o restante da sua sessão do shell. Coloque isso no seu
.profile
ou configuregit
como acima para obter uma solução mais permanente.fonte
Ele reclama porque precisa usar em
ssh
vez de,https
mas seu git ainda está configurado com https. Então, basicamente, como outros mencionados anteriormente, você precisa ativar os prompts ou configurar o git para usar emssh
vez dehttps
. uma maneira simples de fazer isso executando o seguinte:ou se você já usa
ssh
comgit
em sua máquina, você pode com segurança editar~/.gitconfig
e adicionar a seguinte linha na parte inferiorNota: Isso abrange todo o SVC, controle de versão de origem, que depende exatamente do que você usa exatamente (github, gitlab, bitbucket)
Se você deseja manter as pompas de senha desativadas, é necessário armazenar em cache a senha. Para obter mais informações sobre como armazenar em cache sua senha do github no mac, windows ou linux, visite esta página .
Para obter mais informações sobre como adicionar ssh à sua conta do github, visite esta página .
Além disso, o mais importante é que, se este é um repositório particular para uma empresa ou para você, pode ser necessário pular o uso de banco de dados proxy ou de soma de verificação para esses repositórios, para evitar expô-los publicamente.
Para fazer isso, você precisa definir
GOPRIVATE
a variável de ambiente que controla quais módulos o comando go considera privados (não disponíveis publicamente) e, portanto, NÃO deve usar o banco de dados de proxy ou soma de verificação.A variável é uma lista de padrões separados por vírgula (mesma sintaxe de Go's
path.Match
) de prefixos de caminho do módulo. Por exemplo,Ou
Uma última coisa a não esquecer de mencionar, você ainda pode configurar
go get
para autenticar e buscarhttps
; tudo o que você precisa fazer é adicionar a seguinte linha ao$HOME/.netrc
Espero que isso ajude a comunidade e economize tempo de outras pessoas para resolver rapidamente os problemas descritos. sinta-se à vontade para deixar um comentário caso queira mais suporte ou ajuda.
fonte
GOPRIVATE
(go env -w GOPRIVATE=github.com/mycompany/*
) é a única coisa que funcionou para mim. Eu poderia sugerir colocar isso sob seu próprio cabeçalho ou mesmo em uma resposta própria para destacá-lo um pouco mais.Se você configurar seu gitconfig com esta opção, mais tarde terá um problema ao clonar outros repositórios do GitHub
Em vez disso, recomendo que você use esta opção
e não se esqueça de gerar um token de acesso do seu repositório privado. Quando solicitado a digitar sua senha, basta colar o token de acesso. Happy clone :)
fonte
Eu tive o mesmo problema no Windows "erro: falha ao executar o script de prompt (código de saída 1) fatal: não foi possível ler o nome de usuário para ' https://github.com ': sem erro" ao tentar fazer login no github através da caixa de diálogo de login. Quando cancelei a caixa de diálogo, o git me pediu login e senha na linha de comando e funcionou bem.
fonte